Water with vertexanimation isn´t that easy as you need many vertices to have it good looking and thus some kind of LOD. You need some not that easy math to generate the animation and to calculate correct normals for it. You will need to find out the depth of the water and the amount of water between the camera and an object to get a nice shoreline and blending between reflection and refraction. Crysis for example doesn´t use the depth of the water but the amount of water between camera and an object for the shoreline. This value can be easily calculated in the refraction pass and can then be written into the rendertargets alphachannel. The disadvantage is that the shoreline will move if the camera moves depending on the terrains shape. If you are above shallow water with the camera and near to the surface and whan you are looking to the land the shore will be everywhere, but if you look from the land over the water and are very close to the watersurface there will be nearly no shoreline.
What I just wanted to express is that also water can be nearly as tricky as shadows... One could even create some water particles and calculate their flight direction depending on where and how they where created and the wind direction, one could also to animate the water depending on objects penetrating it and it is also a little tricky to make objects swimming on the surface to move depending on the wateranimation...

With sky I was talking about stuff like atmospheric scattering, dynamic (maybe volumetric) clouds and a shaderbased day night change.

Plants need to be animated, what about local wind sources like explosions? You need very good LOD and if possible every tree should look a little different. You will also have to do some good clipping and should organise the rendering very well. This is diffinatly not easy...

I doubt that many XNA developers are coding physics on their own as there are many very good free physicsengines around and to use those really isn´t a hard task.