While I do believe in careful "CIO" methods, I also think that your son is at that at magic age...he's almost ready (or maybe already is?) to not be swaddled, because he's learning to roll over. And with rolling over, and other cool developmental milestones, there come many nights of awful sleep! My son started sleeping great (finally!) around 4 months, and then BAM two weeks later he got two teeth, started rolling over 10x a night onto his belly (and SCREAMING), etc. It was not a fun a few weeks. :)
But it was a short stage. I didn't sleep much, it's true. Rolling a baby over every 20 minutes is rough. But in the end, he started sleeping on his belly (with our doc's blessing) and thus we were rewarded with 12 hours of uninterrupted sleep! Until the next major milestone...
It's never ending!
Whether or not you allow your baby to cry has to take into the following:
-do YOU feel ready to let him cry?
-how long are you comfortable with him crying?
-what level of crying are you comfortable with? (I rarely let my son scream, but fussing is ok with me.)
-does your child actually like to be soothed, when he's sleepy? My son used to scream when he was tired, whether or not I held him. I didn't realize, at the time, that I was making it worse by keeping him up in my arms.
-is your child getting enough sleep during the day?
and the big one:
-do you feel that your son is actually ready? Some are ready earlier than others? My son was huge, and ready by about 5 months or so. But some babies just aren't ready until later. (You're right though- if you wait too long, they are too smart and stubborn to go down easily! Way longer crying!)