That's a naïve way to look at it. As a contractor he should have STFU and done his job. His job is to do the work he's told to do. Now, if the manager hadn't been an asshole, none of this would have been an issue. But when you're dealing with an asshole (in a position of power over you), the last thing you want to do is continue to piss him off.
I've been there, done that and when I there was mutual respect and trust between the manager and I, I would push back on things that could be done better. When the manager was an asshole, I just stayed in my lane. My job wasn't to fix the org's problems, my job was to build software and (from my perspective) my primary concern was staying employed.
If he wanted to stay at Spotify he just should have kept quiet and switched teams.