Suppose that you're in creative mode, and you try to give yourself a minecraft:glass_slab item.
This will of course fail, because there is no such item.
What if Minecraft had the ability to automatically generate certain types of items based purely on their name? In this case, the item name starts with minecraft: and ends with _slab, and generates dynamically the slab form from the block form?
This idea, if applied to slabs, stairs, walls, fences, etc would allow a significant decrease in the number of hardcoded items and blocks in the game.
It could also be used to generate mob skulls for any mob in game, without secretly being a player skull (with NBT in the item, and a tileentity in the world).
Naturally, the generated Block and Item objects would be cached, to avoid performance loss, and use weak references in that cache, so if you only ever create one red stained glass signpost in you entire world, the cache can forget it if the chunk holding it is unloaded.
Note that I'm not suggesting adding recipes for all possible generatable items/blocks, just making it easier for datapack authors to do so.