Bukkit/CraftBukkit — comment on commit 6d198be88856379f14f70b8e2d1ace66bd6f1ab7
File: src/main/java/org/bukkit/craftbukkit/CraftChunk.java line 256
By mikeprimm:

Chunks ultimately persist their biome data - its just a lazy init (the vanilla code part of it), and if you bypass it, you either get un-initialized values or wrong values. In the case of migrated chunks, where the biome that would be generated with the current WCM is not the same as before, this will happen. On the vanilla side, this is why the biome data was made chunk-persistent - this simply is the needed change to make sure that that persistent data is used (as it is for all vanilla functions). On the average, this is much faster than the getBiomeBlock call, as the rather expensive generation algorithm for the biome values is avoided in all cases but the first lazy init for the chunk.