ohthedandy-
The problem is that the notion of causing 'harassment, alarm or distress' is too broad.
You say that you wouldn't care if this took place in a different context, say, on a protest march, a rally, or demo, but bare in mind that:
a) Sometimes politicians need to be shamed publicly, and are rarely to be seen at demos.
b) There is a long history of heckling and shaming politicians, as there should be, and as right.
c) The law, as currently defined, would mean that Cameron (or anyone) could claim that merely heckling "You've got blood on your hands" caused them alarm or distress. This has obvious ramifications for free speech.
I think the right to heckle politicians and speak out at perceived injustice is a more important right than to not be offended by a speaker in public.