This has been raised many times over the years and, as a fellow player, I agree. It's frustrating, to say the least.
You noticed - and even named it - correctly: a "blockade" is really "protection", and that's what many of us are sometimes calling it. You get to reduce their production of gold or lumber (not both) by 25%, which they easily make up for with a raid or two per day, and that's it. You're getting hit instead of them, so you're really protecting them, and quite cheaply (from their perspective).
So, if you have an enemy, don't block them. Raid them or FS them frequently. It won't do you much good if they have any gray cells and keep turtled, but that's literally all you can do.
As for why, I think the official explanation when it was first raised was to avoid strong players bullying smaller ones into leaving the game (or for any other purpose). And I must say see the argument there, as having the effective blocking mechanism would definitely be abused (and Plarium, obviously, doesn't want to lose customers).
Could it be handled better? Maybe put some pressure on the blocker (by auto-disbanding block every few days or something) or letting other people choose if they want to hit the blockade or the haven itself? Sure, but Plarium always liked simple solutions and even more so keeping the ones they already have.
There is no official info, but most of us are under the impression that all development of this game has ceased many years ago (I think that Brawls were the last thing added to it), and all changes to this were refused even when the game was being activelly worked on. So, we can chat about it, but don't expect anything to change now.