What is the least intrusive way to allow a user to change their email address on the front-end?
On the front-end of the site, if you're going through Craft's UsersController->actionSaveUser(), then you're correct... we do require the current user's existing password to create an elevated session for several security purposes.  How you present that to the user is completely up to you (as with anything else front-end related in Craft).

If you absolutely, 100%, don't want that workflow and are willing to accept the security risks of bypassing that behavior, then you can create your own plugin that exposes its own controller action, point your form to it and do whatever necessary business logic needed (modifying email directly in the database, etc.).