Since IntelliJ is the de-facto standard for writing Java/Kotlin/Scala application, and in Relay42 we are heavy Java users, every new engineer gets an Ultimate subscription from day1. The gains in productivity, pair programming speed (esp with the Code With Me feature) by using the same and familiar editor are totally worth the cost.
How is the codewithme working for you better than for example, screen sharing and commit/push switch control?
To be honest, we are not sure whether it's "better". I'd consider it as just another tool that one can use if needed. For example, I do see it being used in some situations which might require a bit more working together (like refactoring where a couple of decisions can go either way), and in situations where a more junior dev needs a bit more context/help/rationale from a more senior dev. In other situations, especially in more senior teams, it's 100% enough to just sync on the PR or, optionally, when writing the spec.
We generally have been doing shared Hangouts sessions with live coding for the past 5-6 years. However, more recently, in some situations we have also incorporated things like Miro for brainstorming/sketching infra, or codewithme, when prolonged refactoring/feature implementation is being done. I'd say the biggest gain in codewithme is that it can sometimes help to prevent a PR that goes back n forth in comments, because people who participated on making the PR would be most likely on the same page about the details/implementation. However, that doesn't mean it's a must.
If the team is senior/confident enough and the feature/refactoring is small enough, a PR is more than enough. Codewithme Is just another tool that can make things easier or overcomplicate them, depends how and when you use it. As for Intellij, it's a really good editor with or without that feature.