I see maxExtent having meaning in two contexts: map browsing (panning, zooming, etc) and tile requests.
I think there is reason to support several interpretations in each context. Currently, I would say maxExtent is interpreted "very loosely" with regard to map browsing and "strictly" with regard to tile requests. This is fine, and I see why it should be an option. I'd like to flesh out the other interpretations and suggest that they also be supported as options.
Interpretation: strict
Context: map browsing – the map extent (in the viewport) never strays beyond maxExtent for the base layer. This means that maxExtent is so strictly interpreted that it overrides resolutions (a map may not be able to be zoomed to all zooms).
Context: tile requests – if maxExtent does not wholly contain tile bounds (for overlay or base layer) a tile is not requested.
Interpretation: loose
Context: map browsing – a base layer's resolutions have precedence over maxExtent, but maxExtent is respected where possible. If the requested map extent falls outside maxExtent in any direction, the returned extent is adjusted by the difference. If the requested map extent is completely outside the maxExtent in any dimension, the returned extent is centered on maxExtent.
Context: tile requests – if the union of maxExtent and map extent does not wholly contain tile bounds (for overlay or base layer) a tile is not requested
Interpretation: very loose
Context: map browsing – the center of the map extent should not stray beyond maxExtent.
Context: tile request – don't think there is anything sensible to say here
Interpretation: ignored
Context: map browsing – maxExtent isn't considered in map browsing
Context: tile requests – tiles are requested without regard to maxExtent
I think it makes sense to allow at least a "strict" or "loose" interpretation on base layers and overlays. Though I gather that there is interest in keeping the "very loose" interpretation with regard to map browsing, from a purely aesthetic point of view, it makes for funky looking maps if you're always allowed to pan off the edge of your data.
The "loose" interpretation has the benefit of always filling the viewport with data.
The "strict" interpretation has the benefit of trying not to request more data than the server wants to dole out.
If you are used to dealing with global datasets, this might not seem like that big a deal. However, I would guess that most folks will be trying to create applications where at least on layer has an extent less than the others, and would like to be able to stop the map from being panned off the edge of their data.