In the end, it seems a bit like "why is $social_network hard" I mean, why is it hard to show my my social graph?
And the answer is: it isn't. The issue is building a system that deals with everybody's social graph. Because you have in your social feed one person that has few friends (easy), that other person that is followed by several people and they leave lots of comments (and you are loading their information when the post is shown - and of course there's no way of sharding that so your info can be read from one shard exclusively) and everybody has their list of blocked persons, other permissions than on top of that you have things like "algorithmic reordering", prioritization, paid promotions, etc
That article doesn't seem to exist at the moment. For the sake of discussion, let's imagine there was some DB schema somewhere that kept two separate WOMEN and MEN tables. Can we not agree that was always wrong? Gay marriage cannot possibly be the first situation in which that sort of decision caused extra work or inconvenience.