I have recently browsed through blockstates, wanting to create a new variation in my resource pack of a bookshelf. As it is currently, a bookshelf only has the normal variant, which leads to the normal bookshelf model and texture. I had a frozen bookshelf model and texture in my resource pack ready to add into the bookshelf blockstate file as a new variant. Unfortunately, it seems to me that it is not possible to specify a custom block state which would make the new bookshelf unobtainable if it actually even would work.
It is my understanding that Dinnerbone will be doing away with damage values in 1.13, and instead will replace with blockstates and separate blocks entirely such as each colour of wool for example. I would really like to see blockstates behave much like scoreboard tags do. You could just set it to whatever you want. If it matches a state defined in blockstates, then it will display the corresponding model. This would allow the possibility of many custom blocks resource pack dependent, which would be perfect for adventure map makers who need a lot of custom blocks without having to change the existing ones!
Support. I'm not too sure how practical this is, but I can definitely see how useful and amazing this would be for both map makers and texture pack creators. Hopefully Mojang will also add needed variants (such as bookshelves, signs, etc. of different wood types) in the 1.13 or 1.14 update.