5.0の新機能を使用して書いてコンパイルされたアプリは、他のそれ以下のバージョン
でのJVM上では動かないんでしょ?

じゃ、5.0が普及するまでその機能を使用しても意味ないじゃん。
それともコンパイラが昔のJVMでもそのコードが動くようにうまくバイトコードを吐きだしてくれるとか?