In Spine editor, the "default" skin is all the attachments that weren't placed in skin placeholders.
Fundamentally, Spine skeletons look up attachments like this: spine-runtimes/Skeleton.cs at 3.6
First it checks if there's an active skin (skeleton.Skin != null)
If it finds the attachment there, it will return that.
If it doesn't find the attachment there, it will check the default skin.
This means, in the way the current Spine core is implemented, the skeleton will always fall back to the default skin if the value isn't present in the active skin.
So if you repack the active skin, it will put all of the attachments in the active skin into its own material and texture. But the default skin will still have its own material and texture. If your active skin doesn't completely override the default skin, you end up with two materials instead of one.
The recommended setups here for mix and match with repacking are:
a. In Spine Editor, put ALL of your attachments in skin placeholders. don't leave anything outside of skin placeholders. This allows the default skin to be empty.
or...
b. Always include the default skin when repacking.