I'm kinda worried about all the BlockPos, Integer, IBlockState etc. instances that are created on the heap and burden the gabage collector.
It might look more elegant in code to pass a BlockPos to a method instead of x, y, and z but god knows how much RAM and GC time it costs.
Looks like Block States haven't completely replaced metadata: There are getStateFromMeta and getMetaFromState which have to be overridden. Before 1.8 metadata only goes up to 16 and if that's still the case then you can't store more than 4 bits in a block state. Now compare that to how much RAM all the pointers and allocated objects around a block state take.
I doubt that 4 GB of RAM will be enough for any medium sized modpack in the future.
I updated a small mod of mine to 1.8. Seems like the blocks work functionally now but they all look like black and purple squares yet.