Two posts recently popped onto my twitter feed about "top talent" in a software organization. One argued in favor of firing "top talent" if they are toxic and the other argued that firing "top talent" is an organizational failure.
I'm also throwing my hat into this ring. You should never think to yourself that you are so special that the organization can not survive without you. For one it is very narcissistic and for another you will probably burn out with that kind of attitude pretty quickly and will have to spend a long time out of the workforce to recover. Mental burnout is no joking matter.
Similarly, if the organization is taking advantage of a specific individual by stroking their ego and failing to institute proper software development processes then you should speak up and try to rectify the situation before one of your co-workers burns out and is unceremoniously fired. Or is it ceremoniously? Either way, it's just a super shitty situation so you should work to prevent it.
Remember, software development is a team sport. We all have our own development style that might or might not be suitable to a specific environment but no one in a software organization should be a hero programmer.