The main difference between development mode and production mode, with a standard
config/database.yml, is which database it uses. All other differences are just trading runtime performance for development convenience.
No, you can set pretty much anything with the right code.
Of course technically you could, but it would be much more work. You would need to reimplement not only creating the user records, but also the aspect, profile etc. records, keypair generation, password peppering and probably half a dozen things that I don’t remember from the top of my head.