Here is also a video explaining the problem that also contains a fix for this bug: http://youtu.be/LIDNyB-Ys8w
What happens:
When you load another section of a chunk, e.g. by placing blocks in that section, then you remove everything out of that section and it stays loaded and the server still uses these empty sections for calculations like mobspawning. This does not change if you reload the world!
What should happen:
When a section is completely empty it shouldn't get used for any calculations, since they don't give any result anyway and are therefore totally unnessecary.
How to fix:
There is a method in the Chunk class (abw.class) which checks for the topmost filled section in a chunk (int h()). Don't just check that the section is not null, but also that it is not empty.
I did not find any post that describes this bug appropriately/suggests a proper solution, which is probably why this is not fixed yet!