I definitely try to keep my sprocs simple and generally logic free. The only time I would have a sproc get over just a couple lines of code is if I had some logic that needed to be ran that would take substantially longer to run outside of a database.
I really don't even like having to do that, but in the end performance beats design.
Bingo! This is what we do too. 90% of our SPs are small and contain no logic, but sometimes the DB can do it a lot faster and we break the purity for that reason. Also, some of our SPs that do paging with lots of weird conditional sorting get kind of long
(200-300 lines), but there are only 5 to 10 of those.