1. When i have a lot of things, I wrap Block and Item, and register references into my own Map, keys being unlocalized names.
2. Registry things either in the constructor for the object, or in its wrapper constructor. Agreed with Draco18s, LanguageRegistry is deprecated since 1.6.
3. Minecraft doesn't do this in 1.6.4. The common method would be to use Forge Configuration class to get configurable (and free) block/item ids. No need to worry about this for entities, as long as you use EntityRegistry, and not EntityList or "uniqueid" things.
4. Use the world random reference to use the world seed, but don't change it.
Perform checks before generating.
Limit TileEntity generation.
Don't reinvent the wheel, Minecraft already has a lot of useable generators, especially for ores.