I don't like #3 because it is NOT userfriendly. Remember we are supposed to use intelligent defaults and get the heck out of the users way.
I just did some research using ArcMap, Gaia and MapInfo. ArcMap provides one warning for the first unprojected layer added and that's it. It also shows a warning if you add a layer that is a different projection.
Gaia does what uDig does. If the map has projection it otherwise it will show the layer or not depending if the natural coordinates allow it.
MapInfo requires that you specify a CRS but the program isn't the easiest to use so I'm not sure I want to model after that :).
QGis - Doesn't use auto projection automatically so users would be used to things lining up if they are in the same SRS or not if they are not.
ArcView - No warnings. Basically the same as Gaia
I did find one BIG bug with uDig. There is a problem transforming To and From Generic. It is a pretty critical bug for me. The idea was that Generic would just go through. But it doesn't seem to do that. If the map is generic and a layer has a CRS it seems to always reproject to LatLong. If the map is any CRS and a layer is undefined it never renders!!!.
I'm working on this right now. it should REALLY help.