Acrylian, just a friendly follow up.
You are indeed correct that the markup (to handle non html5 browsers) is indeed the sane way to do things. The problem was that it always takes the first alt source if there is none for the source itself and places it inside the video tag as src="..." This doesn't allow the fall through to work correctly with the additional source tags. This effectively blocked my source tag cascade from serving the proper file. What would happen is the mp4 that was first would get served as flash even when there was an alternate in the proper format.
Really this is not a zenphoto issue but a tinyMCE one. I ended up just hacking the media plugin for tinyMCE to stop putting a src attribute inside of the video tag, as well as not inserting the flash player object since this is all added later via my sublimevideo hook. I was not able to make it work perfectly but I can now just dump my desired source into the source tab of the media plugin and get the desired end result allowing me to feed video properly using html5 video is supported or the flash player that is used when not supported.
It now works with FF, IE6-9, chrome, safari, mobile safari and android (to a degree, android is a mess when it comes to this subject).