The pro's and con's of using a logon trigger versus updating a service attribute at the TNS level versus setting the default edition are very application specific. What are the needs of your application?
If you truly want all new connections to use the new version, setting the default edition would make sense.
If you want new application connections under some certain circumstances to use the new edition, using a logon trigger where you can put some logic like "if the user is X or the ip_address is Y or ..." for testing purposes - would make sense.
If you want a specific application to use the new edition, but are not ready for all applications to use it, using a service attribute in the TNS connection for that application would make sense.
and so on - the pro's and con's (as is true for most everything pro/con wise) would depend on your needs.
In the general case - I would say that changing the default database edition is the typical course of action, coupled with a bounce of the application servers to re-establish the connections, using the new edition.
You can certainly drop old editions - as soon as v$session shows that the old edition is no longer in use by any session (and a few other rules).
http://docs.oracle.com/cd/E11882_01/appdev.112/e10471/adfns_editions.htm#ADFNS99919 The old edition will be dropped. Any object specific to that edition (not over-ridden in the next edition, the first child of it) will likewise be dropped using the cascade option.
If you do not drop the old editions, those objects will stick around. the downside to that is your data dictionary might be larger than it would otherwise be, but performance wise, it is not really going to impact you.
As far as "how to handle non-editionable objects" - it would again require a specific case. For tables, it would rely on editioning views and perhaps cross edition triggers and definitely some heavy thinking/design. Not sure what needs of a sequence change would be. For the function based index - you would create a NEW (probably invisible) index using the new logic and as part of the upgrade - you'd be dropping the old one (we have to rebuild that index if the underlying logic has changed). And so on - we'd need a use case (set of circumstances) to describe what might the approach to take for each...