I updated Unity to 4.6.7p2 to be sure, and the bug is still here.
You'll find attached a project that exposes the bug (NGUI not included, of course

). Here is what it does :
- Display a simple 'Hello' label with a font big enough to nearly fill baking texture
- Wait for the user to click the screen
- Instantiate a 'World!' label prefab, which is disabled by default
- Wait a given frame count amount ('Set Active Frame Delay') before enabling the instance
Once enabled, the instance will take so much texture space it will fire a font texture rebuild.
If you set the 'Set Active Frame Delay' field to 0, everything works fine. If you set it to something >= 1, you can see 'Hello' garbled for one frame then update and fix itself the next frame.
I added a framerate limiter set to 1 FPS so that you have the time to see the garbled frame.
I also added a disabled DynamicFontFix component that does the same as what I proposed you in the patch, but it only works with Unity versions that supports the Font.textureRebuilt delegate,
if NGUI registers itself to that event and not on the callback (that excludes Unity 4.6.7), need reflection to gain access to UILabel list of labels and is not guaranted to run after NGUI's delegate (not sure this point has an impact though). Just enable it to see the bug vanish even with 'Set Active Frame Delay' is set to something >= 1.
Don't forget to force clean font's baking texture between each run, or you won't see anything broken on the editor.
I hope that will help !