Personally, I only use them for big hefty updates or deletes. For example, I have an Oracle package with a whole load of procedures that run when someone completes an order - this process involves numerous tables, deletes, updates and some relatively simple logic. I consider that an ideal candidate for a sproc.
I use CF as an alternative if, for example, I'd have to repeat a load of complex business logic in a sproc that I've already written in a CFC.
Bear in mind the advantages of a sproc - basically precompiled code. Remember that if you're using well-formed cfqueries with cfqueryparams, the execution plan gets compiled up on the first run *anyway*, so whether you call a sproc or run your query there really will be no difference.
And yes - don't underestimate the extra time it takes for a developer to do everything in sprocs rather than ColdFusion, they don't call it rapid application development for nothing 
Remember as well that someone can write a poorly-coded sproc as well as they can write a poorly-coded query. At least if the developer has his query in front of him he can instantly see what indexes he needs and spot any mistakes, you could go years before realising someone made a mistake inside a sproc as no-one can see the code.
As for security yes - if you really want to limit security then sprocs will do that for you. However in most applications I've seen the developer just has the ability to write a query as they see fit.
One other time I use sprocs while I think of it - if you have more than one application that needs to do the same thing - this should *definitely* be a sproc.
Basically, the same rules apply to them as any other programming aspect; security, duplication of code, efficiency, maintainability - it's all a case of weighing them up and deciding what's best for you.