This is the crux of the issue: The definition of "causing problems for other people" isn't as well defined as it may seem.
Someone who is constantly driving the team further apart than together, struggling to work with other members of the team, and being openly dismissive of others would fit the definition of "causing problems for other people".
From another perspective, it would also fit the definition of the "hard to work with" person in this article. That's the point: Even when someone is falling behind, as an employee you must find a way to at least try to work with them and lead by example.
One pattern that I saw quite a bit was one team member being a bit more technical (rather than business focused), so they tended to cop a lot of the internal questions that caused them to context switch a lot. It increases their frustration levels and drops their performance. One effective way to solve that is to acknowledge what is happening, and put in some boundaries so the other team members know that (for example) Tuesdays-Thursdays you need to really be stuck before you bug XXX about your problem. It makes XXX feel better about the situation because not only has it been acknowledged they are a key team member, it also makes sure they get some quiet time to really get stuff done at their own pace without having to switch jobs all the time.
The other team members, knowing there are a few boundaries now, tend to become more self sufficient so you end up with a better performing team overall, and one that isn't so dependent on a single person.
Obviously there are other patterns that end up creating "hard to work with" people, but the example came up so often I think it's worth writing about.
If you're too busy thinking what an amazing worker you are and everyone else is dragging you down, there's a good chance you feel vindicated in behaving in a way that makes your coworkers' jobs harder. Why should you help them out? They're not even trying to do things right and they're making you look bad.