You're seriously thinking that with the amount of open source programs there, of graphic and sound assets made public (aka. free to use) and so on? Sure. Some of those do earn on that one way or another. Through adds on their sites for example. But technically speaking, they may end up earning zero, and they still do it. Others don't even try to capitalize on their work.
Sure, the quality is often sub-par...but hey.
That being said, if the code is an issue then instead of spending money on trying to make ANOTHER paid feature for players to circumvent their messed up code, they should spend that money to FIX the issue altogether in the first place. This is programming. It's not like designing hardware where you have to follow laws of physics and use actual, physical resources. It's just a bunch of 0's and 1's and everything can be changed without affecting anything that is not directly related to it. They have more than enough funds to fix a problem like inventory management. It's not even like they have to actually wrestle with the inventory code in the first place, and if retainers are really on a different server, it proves that perfectly. They can just make a separate inventory database, using PROPER coding this time, use automated method to copy the inventories of players to it, then make the current code for inventory inaccessible by redirecting everything related to it to the new code and operate on it from then on.
Sorry, but they just don't want to do that. The costs of that are not high compared to the cost of making a game itself. And they are paid, by all these people that subscribe to the game, enough to BUY a new game or two every single month. Even if you have to take into account the costs of maintaining the servers, they are nowhere near the cost of developing games. So a fix to a single system is anything but a "big thing" in comparison to the scale of an entire game.