Yes, Android creates ODEXs from DEXs at install-time.
Yes, the APK is saved. DEX and ODEX only contain code. The APK is where all your resources and assets come from - your label, your icon, your layouts, etc.
To my understanding DEX optimization is purely an install-time process, and is not performed on any DEX that is not part of an installed APK. And since a DEX that is part of an APK cannot change without installing a new APK, there is no need to regenerate an ODEX outside of the normal install process.