In almost every game, you are "unlocking" new content, like new levels as you play through the game and such.
The question you need to ask is "what purpose does the unlock serve?".
In a good game, it comes down to either of two:
>To prevent players from consuming content faster than would be enjoyable.
You don't want to give the player access to the final level when he hasn't even played through the fucking tutorial. This is especially the case in RPG games where you'd essentially be skipping 90% of the story.
Giving players gimmicky customization options is also a terrible idea when the player doesn't even have a grasp on how the game even would be played.
>To reward the player with content for meeting challenges.
Simply dangling a reward in front of a player, even if insignificant, will make players attempt whatever stupid challenge you present. In that case, the process of unlocking the unlock becomes content.
The "bad" features you mention all come down to a third reason that has become very prevalent in gaming and are what people truly despise:
>To pad the game's content.
Any game that tries to monetize on basis of playtime, whether it's through subscription or microtransactions, is incentivized to do this.
Rather than having developers design the game so that the content sticks around for the exact amount of time that is the most enjoyable; we see publishers pushing for content outstaying its welcome.
Ultimately it's just a big grey line between proper pacing & challenge and padding, and where the line is placed differs on a person-by-person basis. What we're seeing now in the industry is publishers slowly trying to pad more and more in order to maximize monetization, consumers calling them out on it in the process.
I believe the bigger cancer here is not the grind4unlock, but the chest-gambling bullshit, as that is the thing that allows publishers to obscenely price unlockables. When you sell a specific unlock to a player, the player will call you out on 100 bucks being outrageous. But when you instead sell 1% chance to get an actually decent unlock for 1 buck, and completely hide the fact that the chances are abysmal, then it's a lot easier to serve extremely overpriced products to players.