There is no way to tell if water was naturally generated; the best that the game can do is check the biome and what if the player wanted to build in a river/ocean biome? Adding more blocks is not really a solution because it will slow down the game (the changes in 1.13 increased the number of blocks from around 250 to 8000; "infinite" block IDs are not possible unless computers had infinite computing power, plus this introduced many new bugs due to having to handle so many more blocks, including ones that never actually existed before, even as data values, like the render-only states of snowy grass and fence connections). It would be more practical to add a player-placed flag to the chunk data though (1 bit per block, 512 bytes per chunk section), but even then you'd have to fill in a pool one block at a time to ensure that all the water blocks are player-placed (or maybe if two player-placed sources form a new block it is also player-placed).

Otherwise, I don't like the idea of uncontrolled processes like this, and it would be hard to know for sure if you had "artificial" or "natural" water since they would look the same (plus it reminds me too much of the grass growing underwater issue that Optifine's Clear Water setting caused, a bug that I fixed myself); either some blocks naturally generate with moss and/or the player can craft them as they can with mossy cobblestone and stone bricks.