The array method has only one copy of every object in your game frame which keeps resources down to a minimum and will only create an object when needed.
If you created a layer for each level, it will add all of the objects for each level together within one frame so you will eventually hit the object limit of 20,000. It would also be a waste of resources. I don't think you can edit the "create at start" property within the event editor so all objects would have to be created at start which messes with your global objects being ported to the next frame. There's not much control.
A major thing to consider is that you lose the functionality of copies or instances of actives. While in a normal level it would be easy to quickly copy ground objects in a row as instances so they reference the same active object, you can't do that if you want their alterable values to be unique if they record their positions. So that means your object count will quickly get out of hand if every wall and floor object has to be a unique cloned object.
You can run some tests yourself having multiple global objects on different layers on the same frame. Try adding instances and clones to see if there's a difference. To me though it seems like a roundabout method for loading levels when arrays can already streamline the process with a single fastloop for loading if you use the mod function.