A lot of very complicated, distributed systems require a lot of customization and tuning to run. Kafka, a system used for distributed "logging" (sorry for the gloss) is known to have a huge operational burden, and takes a lot of customization. If you've ever deployed ElasticSearch, a document search tool, you know you have to write non-trivial blocks of code that operate on the domain of the target documents, to even have ElasticSearch produce basic results.
The point is that, while these blocks can be complicated and need lots of customization, the ability to grab the source and modify it yourself is a huge enabler. If I could grab a stock IP from a repo and then spend 40 man-hours customizing it, it would be a huge benefit over spending 1000 man-hours making the IP from scratch.
I hate to appeal to expertise, but I've written HDL, synthesized it, and done mask layouts before. I understand that it requires a lot of customizing, but the first step to all of this is sharing. Sharing infrastructural components is a huge reason of why the commodity software business is as robust as it is.