First off, I’m sorry that you had that experience, and yes, being blunt should not be used as an excuse for being an uncaring so-and-so.
However, what the recruiter was trying to tell you (in his inelegant and ungentle manner) was that when you have career gaps, and when you don’t stick around at least a year (and preferably 3 years) at each job, you present a higher-than-average hiring risk to companies looking to fill a position.
This doesn’t make you a loser. It doesn’t mean that you wouldn’t become a rock-star at any of these companies, if given the chance. However, as the saying goes, “The race is not always to the swift, nor the battle to the bold, but that’s the way to bet!” So while you may have turned out to be the not-swiftest who wins the race, or the non-boldest who wins the battle, lacking specific knowledge of why that might be so, the hiring companies will on average do better by hiring someone else.
They don’t know you from Adam, so unless your application gives them a compelling reason to take this higher-than-average risk and hire you instead of one of the other 150 applicants, you should expect to get a polite decline at best, and silence at worst. Is that fair? Not necessarily, but it is the way that it is. Rant against it if it makes you feel better, but that won’t change anything.
What will change things, potentially, is for you to up your resume game by proactively filling your career gap with the worthwhile thing you used it for; and specifying your reason for leaving the job after 6 months, showing how leaving at that point saved both you and your then-employer from a bad fit that would have cost them more in the long run than what they had to spend looking for and training up your replacement.