I worked for a tools company and we were the ones pointing out that the consultant's solution, intended to be a consumer application exposed to the world, was not written to actually have multiple nodes for any sort of scale up or fail-over. When they added that, we were the ones that pointed out it fell over at 10 RPS and didn't recover without human intervention. Etc.
I think you're maybe explicitly thinking of internal IT groups, rather than internal software groups, and I would agree with that, because, again, misaligned incentives. IT is all about preventing change; you don't want to risk breaking key services, and so you try and ensure that every interest has a representative and that change only happens when all of them sign off on it. That is a very slow and very flawed way to create -new- things of value, and because of that, deferring all of that to a different entity makes a lot of sense. Just, that different entity can be an internal software group more efficiently than an external one, I've found.
Maybe a 'one true Scotsman' argument, but every 'software group' that was a part of IT that I've seen might as well be called the 'personal project group', because they spent more time working on those than they did making progress in that environment.
If IT sucks for people who want to change things and roll out new and exciting products, most of those people will... not work in IT.
Consequently, when you're soliciting ideas from your team, there aren't any of those people to speak up.
And if no one asks "Why are we doing this?" or "What if we did this differently?", then it's much easier to pretend another way doesn't exist.
Doing the same as a consultant is two problems: (1) doing the hard thing & (2) finding the right internal people & getting necessary information out of them.
Consultants are better at (1) than internal teams, more often than not. (Excluding modern tech companies)
I have yet to be convinced that anyone is good enough at (2), that a more successful plan isn't avoiding it altogether