I wonder whether the blocked neighbour seat proposition is so difficult to put in place because it needs to be implemented on top of an already screwed seat management algorithm. Flyertalk seat maps give a pretty good idea, and there you see how some cabins just look very bizarre. Below are some examples, with random seats being blocked off. This has nothing to do with weight and balance (otherwise the blocks would apply to all seats in a row).
And these are not even the oddest examples. Sometimes you have all aisle seats blocked off. Sometimes several rows in the front of the cabin with seats A-C blocked off, and then some rows in the back with rows D-F blocked off.
I don’t know and I don’t have any other indications, but I wouldn’t be surprised if the underlying IT was just very difficult to build something like seat blocking on top of.