I may be biased because I studied crypto for about 9 years. My focus was using geometric properties of elliptic curves to speed up the computation, and I was writing hand-optimized code to prove my results.
I can certainly tell you that you can do tons of mistakes at every layer. Protocol, primitives, composition of primitive, how do you implement them in sw or hw, how do you optimize them.
As an example you can see what happened to TLS1.2, looking after the fact basically everything was wrong with it.
Today I work for a large Internet company. I would be absolutely terrified if I had to see custom crypto implementations. There simply isn’t enough time to validate all that needs to be validated.
Back to your point, though, I’m not against the “build your own crypto”, provided that you have proven expertise. Typically, if you are really an expert, you want to consult with other experts and create a solid team that can verify your implementation.