I was close to being expert a long time ago. Now memory loss has replaced a lot of minecart knowledge. Make sure you've read
Larix's minecart education thread. Others can answer better than me and will probably chime in.
Firstly, I see that it is possible to make a cart skip over water. Is this reliable? Is there any horizontal movement upon skipping, or will the cart move in the same direction it start in?
Any time a cart leaves a track (flying, derailing), its direction of travel changes some from the track it left. This can be complicated to test because you might also be encountering checkpoint or other non-obvious movement mechanics that Larix covers pretty completely. Several people have demonstrated them reliably jumping small gaps, which works as long as the cart doesn't strike a wall before getting back onto tracks.
You might be able to get away with a longer gap if the landing zone is wider than 1 track? (e.g. launch from one track, and have three parallel tracks to catch it.) I've had pretty good luck jumping carts through fortifications and landing on destination tracks, which is 2-3 tiles of off-track travel. (To implement airlocks and various machinery for disposing of prisoners as messily as possible.)
Second, if a cart passes through a waterfall and/or small amount of water on a rail does it raise the chance of derailing? Also, would a cart moving at high speeds along a curve that does not change z-level stand a chance of derailing?
Sufficiently fast carts will derail on a flat corner unless there is a wall blocking the direction of travel when the cart enters the turn. If there's a wall to keep it from flying off, the cart will not derail at any speed.
No definite knowledge on the water. But I bet standing water doesn't do anything but add deceleration. If the waterfall causes water flow from one tile to another, that flow can definitely move the cart, which could take it off a track. (Can tracks even be placed on grates? I assume not.)