"Do it once" approach is great... as long as it's not overdone. I've inherited a system where all stored procedures and functions are written in this fashion.
On one occasion I had to go though 6 nested SPs to get to the actual t-sql that performed business logic. On other occasion I was trying to troubleshoot performance issues. Again, the code used a function which was calling another function which in turn was calling another function etc.. When looking at the execution plan I noticed that there were joins to same table multiple times from different functions. I got rid of nesting functions and the performance improved 10 times.