The reason there is no flash is very simple, to conserve on battery life. Flash kills the battery on OSX, and since the iPhone is built on OSX, the same problem occurs. Apple wants widespread adoption of H.264 video, so they decided to not include flash capabilities in order to help the format prosper. The lack of 3G is a similar reason, 3G will eat up the juice like no other.