You actually can't create VBOs outside of a current and active context, which is why it still happens at render time no matter if you call compileAllObjects() or not. You can disable VBO-support in Config, which might help to get rid of these hick-ups, but it might be slower then (highly depends on the device).
However, that's why i asked if the blocks share (or could share) the same geometry. Because in that case, you can make it so that this process happens only once and not per block.