Because for XXXMapsOverlay and XXXMapsLayer, we implement them follow different way in different product. In some edition, the XXXMapsOverlay is a wrapper of XXXMapsLayer, but in some edition, they are totally different to require different server library. We keep them in our products to make user feel better when switch between different versions, and most of the code can be directly used without modify.
You can add the XXXMapsLayer into classic overlay, it should works.
If you want to implement a custom layer for example the mapbox, to make it works better, you should want to build a custom zoomLevelSet to make the tile image match without stretch. You can see we have the custom zoomlevel for Bing and Google. Generally you don't need think about it and just choose the default zoomlevel set, it should works.
Wish that's helpful.