Why is that? There are moments where he can be annoying but even in those situations, you have the option to shut him up
You don't see how HAVING to tell him to shut up because he constantly appears of his own accord can be annoying?
You don't see how being constantly insulted by him if you don't perfectly align with his views can be annoying?
You don't see how him constantly stroking his own ego if you do perfectly align with his views can be annoying?
Also, no, you can't just tell him to shut up in a lot of the situations he appears in. A few you can, but most you have to sit there and listen to him go on about how shit you are and how amazingly perfect he is and how evil Arasaka is.
Even worse, is how the shoddy implementation of him creates a massive dissonance in narrative. You can have your first interactions (Such as the meeting with Takemura at Joe's Diner) where you cuss him out and state how much you hate him and don't want to see him at all... Then you do literally any side content and he appears and V is all chooms and happiness with him - Where again, you can't tell him to "Fuck off" like you did in the main story interaction, he sits there and you both act like you are BFFs and always have been.
Which is the inherent issue with this sort of "Character stuck in your head" thing. While a normal character will only appear in set sequences and only when you choose to interact with them. A character stuck in your head will pop up constantly during completely unrelated scenarios in whatever order you choose to tackle these unrelated scenarios. Meaning it's impossible to write proper continuity while also having situation dependent dialogue.
In addition, unlike a normal character, there's no "Opt in" to their interaction. You at best have to "Opt out" when they've already started talking to you. Like, if for some reason I didn't want to listen to Alistair in DA:O... I'd simply not go and talk to him and not bring him as a companion. For someone like Johnny or Fabien (In VTM: Bloodlines 2) I have to have them stop me, start yapping away and then HOPE that there's a "Fuck off" option to use (And that said option actually ends the conversation... The aforementioned Joe's Diner scene with Johnny can start off with you telling him to "Fuck off" but then he still has his entire conversation with you regardless)
This isn't a new phenomena either. Back in the days of N64, Legend of Zelda: Ocarina of Time people found Navi to be annoying with her constant "Hey, listen!" where she announces that she has a dialogue available. You can't turn it off, it's not an opt in (The actual dialogue is, but her screaming "Hey, listen!" is not) and it just serves to annoy people. Ironically, in the same game you had Saria provide the exact same feature where she'll occasionally have dialogue for you, only instead of screaming in your face about it you had to opt in by actually contacting her of your own accord.
So Johnny is made annoying by not only being a very abrasive character, especially at the start of the game (PL mellows him out a bit, but he's still a douche) which people may simply not like and/or not be interested in interacting with. But then he is forced upon you constantly because the method of is inclusion makes his interactions have to be opted out of (When possible). Meaning he's annoying for anyone who either doesn't like him, or doesn't want to interact with him at certain times.