I've worked at such companies and it kind of sucks. Everybody optimizes for their local optima without any concern for what is good for the company. People end up a lot less willing to lend a hand to a 'rival' groups, and projects that would be good for the company as a whole end up scrapped because the individual departments involved cannot agree on how to spread the profits/risks internally. Also a lot of work ends up duplicated because it is 'cheaper' to get someone in your department to do it rather than to 'pay' a rival department to be allowed to use their solution.
Basically you end up losing many of the advantages of scale that a big company should provide without gaining most of the advantages of flexibility and nimbleness that a small company should provide