A key part you're missing either willfully or ignorantly is that they're midway through the refactoring to make it data driven, so you have these odd/rough edges.
Yes, having to declare json files for your new block in your mod is a pain...
Meanwhile what it was built for, resource packs, this actually gives a good amount of power to the pack maker without having to ask the client to run untrusted java code.