TLDR: The model isn't broken, it could use some optimization.
Everyone likes to bash a recruiter. And, some guy who takes 80 quid a day out of your pocket for months should be an object of derision, no?
Look at the flip side: agents act as stimulus for the market, pushing through deals quickly and raising the ceiling on rates.
Sales is dirty and hard work (I've done it). Agents need to be like bulldogs as roles go fast, within days or hours. Without an agent in the mix contracts take longer to get signed.
They are far from the best judges of quality candidates. The closest they get is keyword matching and telephone screening if you're able to string a sentence together. But often this is a good 'low bar'.
Agent fees are expensive. As a contractor it's never good to find out what the client is actually paying for you vs. what you get. That said, the rates here in London are good compared to what I found in Vancouver and elsewhere in the UK. The difference I observed was the aggressive and competitive agencies here, where if they can squeeze more money out of a client they'll pocket a good chunk of it.
London's well-established and healthy contracting market is due in part to the agencies that have grown up around the candidates and companies here.