Here's an argument that could work. I'm not sure I agree with it, but it's the best one I could make.
Belgrano was not a military target. The British 'limited war' against Argentina was largely land and air-based, and the Belgrano was so old and crappy (and sailing away) that it was never going to be effective in that war. Just as Britain limited any strike against the Argentinian mainland, even against military targets, the British ought to have limited its attacks against the Argentinian Navy to those ships that posed an immediate, direct threat to the British #occupation of the island. The Brits had two goals: beating the Argentinians, and limiting needless casualties generated by achieving the first, civilian or military. Destroying the Belgrano needlessly wasted human life without substantially improving the British condition on the islands sufficiently to justify that loss of life (it also won a bunch of votes at home).
I think that's wrong. Blowing away the Belgrano with a submarine put the fear of a watery grave into the remainder of the Argentine Navy. They, in fact, remained in port for the rest of the war. It would have been really nice if the British Submarine had done something about the surviving crew, though.