Hrm, so you're looking at roughly 40km^2 at the equator. At that size a lake will only be one tile big anyway, if you use my idea you'll have to judge by the amount of water in the tile whether or not it should look like the water takes up the whole tile or whether it is just a river.
Keep in mind that my idea does need to be iterated but like I said it should be possible to do that over the course of the other iterations you have happening. And the calculations themselves shouldn't really take too long. You're looking at the averaging out of the water in the method I described about 1,000,000 times. Given that there's probably less then 1000 ops per tile that's around 1,000,000,000 at a rough guesstimate. About half a second or less for any decent processor.
" There's nothing like a bit of destiny to get the ball rolling " - Terry Pratchett - The Wyrd Sisters