The idea that zombies don't spawn on player blocks has been around for a long time.
The reason for people saying different things about it is because nobody specifies the type of spawn.
In a POI, if it wasn't protected from zombie spawns, the sleeper spawns could sometimes be prevented if you happened to place blocks in the exact sleeper zombie spawn location. This would work for one person and then they would spread the rumor. Some people would hear about it and try replacing every original POI floor block with a player block, but that's not how it works. The exact spawn location must be covered from floor to ceiling. However, even this does not always work. Sometimes, the zombie spawn will just push up to the roof (maybe this part depends on the loading order of the blocks. zombie spawns, blocks invade the space, zombie is clipped and gets pushed up to the first air space it can fit). Removing floor blocks doesn't work either. The sleeper zombie will spawn in mid air and fall to the ground undamaged. I do this on purpose in some custom POIs so that I can get zombies underwater.
Now for zombies spawned in the world... I'm not completely sure what works and what does not. Many alphas ago I wanted to see what would happen if you covered an entire area, as far as could be rendered, with spikes. On BM, they just spawned anyway and instantly started taking spike damage. Whether or not this still happens, I don't know. The best test for this would probably be using the buried treasure quest since the zombies spawn in pretty close to the player. Go into creative for a moment, cover everything in a radius, come back out and grab the chest and see what happens.