Here's my thoughts on it;
You can use a self-encrypted certificate, and it *DOES* encrypt the session. There are the free/recurring ones and they're perfectly fine too.
For Cloudflare, the big thing that it has going for it is that not only do you get the SSL, but you also get the CDN, and this is HUGE. I've always run CDN's on websites, whether it's MaxCDN, Akami or AmazonWS. Speed is critical on websites.
The only time I don't use a CDN is when I'm targeting a specific area and the servers are located in that area. CDN's are all about decreasing the response times, but kick in CloudFlare's FREE SSL, and FREE CDN, and you have a winner on your hands.