I'd rather games have cosmetic microtransactions instead of paying for DLC or in game currencies. Game developers have to make money somehow. If a bunch of other people buy cosmetics, maybe the developers release DLC for free.
There is a concept called a 'loss leader'. Grocery stores will sell certain products at a loss because it brings more customers in and then those customers buy other things. Game console companies used to sell consoles at a loss or low margin because they would make it back on licensing fees for game sales.
If the developers offer expansion content and/or free online-multiplayer gameplay, there is a loss of income. However, when people are playing the game more, they're more likely to purchase cosmetics. Then the developers make more money than lost.