If I understand correctly, your problem is that you want to see the whole world in your view, but you want the user to see how the tiles are wrapped.
First, Leaflet does exactly what you tell him. Check out this JSFiddle I created with your code. http://jsfiddle.net/zF6bf/ I can zoom out to see the whole world, but only if I resize the results pane to be large enough to show the whole world without violating your maxBounds rule, This seems right to me .
Secondly, if you really do not want the world to be wrapped, you can also set the noWrap parameter to true when creating the layer.
var osmLayer = new L.TileLayer("http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", { noWrap: true}).addTo(map);
This will prevent this layer from wrapping around the map. If this wrapping is what made you create the borders in the first place, then possibly removing the wrapper will eliminate your need to set maxBounds . Then the map will be available and scaled freely.
source share