Mob spawning happens in two stages.
- First: a block is picked at random. This block has to be exactly Air (not any non-solid block) for a pack of mobs to spawn around it. No solid block is even required under the chosen block, just it to be Air.
- Second: several attempts are made to spawn individual mobs around the pack center - at exactly the same height, but up to 20 blocks away horizontally. Strictly speaking, getting a mob spawn at 20 blocks from pack center is impossibly rare, but still can happen. Most attempts fall within 5-10 blocks of the center.
The culprit in your case is the second stage - individual mobs can spawn inside non-solid blocks like Carpets, Pressure Plates, open Fence Gates and even Doors - tall mobs are thin enough not to collide with a door when they are placed in the center of the block.

Had your installation been underground, with no Air block at the level of doors, it would be secure. But it being in the air, packs start spawning outside, and "leak" inside through door blocks. Oh, plus there's air above glass floor.
P.S.: My test world shown on the screenshot is a snow-covered superflat. Though mobs definitely can spawn in snow cover blocks, there is never (if I'm careful) an Air block on ground level, so the world is safe.