It is actually an amazingly complicated mathematical problem to assign passengers to seats in such a way that the maximum number of people end up next to the others on the same booking.
Before the Internet, the airlines' computers did this. You can get pretty close to a solution if you start with an empty plane by and seat the groups of 6, then the groups of 5, then 4, and so on. At the end you assign the last few empty seats to the solo travellers.
The problem is that the airlines now allow people to choose their seats, which plays havoc with the allocation. People pay for the front row and the exit rows for the extra legroom, which is why those are the most expensive. But for example DP always chooses an aisle seat (to not have to climb over anyone for the loo) in rows 4/5/6 (to be able to get off the plane quicker). Other people will choose a window seat for the view, or to not have people climbing over them to get to the loo. You only need a few of those for your pool of assignable seats to become much smaller and more fragmented. (One of the reasons why the warning that Ryanair used to put about "you might be assigned the dreaded middle seat" is rubbish is that couples who sit together will always have a middle seat when it's a 3-seat row, so the middle seats are pre-selected almost as much as the window or aisle seats.)
So it's a trade-off. Allowing people to choose their seats makes random allocation much more likely to split families up. But since (a) choosing seats makes money for the airline and (b) lots of travellers really like being able to choose their seat for a few quid, this isn't going to go away any time soon.
You can also choose to reframe the situation. There is a temptation to think "Oh, the fare's only £60, why do I have to pay £45 for a bag and £10 for a seat?", but if you were to go with a more expensive airline for £140 with the bag and seat included you'd be worse off.