Welcome to the Spine forum!
Unfortunately the wording in the above posting could be misunderstood, I have just changed it so that it's more correct.
To answer your question:
Normal Unity means apply, Unity loads all assets that are referenced directly (A->B) or indirectly (A->X->B). This means that by default, the SkeletonDataAsset references the AtlasAsset, which references it's atlas pages as Materials, where each Material references the atlas page texture. So if you exported all atlas pages normally as a single AtlasAsset, all pages will be loaded as soon as your skeleton's SkeletonDataAsset is loaded.
In your case, if you export two separate AtlasAssets for two separate skins and assign the AtlasAsset only later upon switching skins, the SkeletonDataAsset does not initially reference your secondary skin atlas textures. However, if e.g. your building GameObject holds a reference to the second AtlasAsset, this again counts as a normal asset reference as usual, so you have just moved the reference from one asset to another.
If you want to use delayed loading of atlas texture pages, you would need to make sure to not include direct references to e.g. your secondary AtlasAsset asset and instead use Unity means like Addressables, AssetBundles, etc. You could use e.g. a build script clear any direct references to the delayed-loaded resources and use a loader script to load and assign references at runtime when actually used.
See this forum thread for additional info.
We also have an issue ticket here which deals with implementing a component to more comfortably support on-demand loading of atlas assets:
Unfortunately we didn't get to implement this feature yet.
If anything of the above is unclear, don't hesitate to ask.