Like all great things, it depends. How different is the logic in your variations. If, for example, the only difference is the return columns, then all your savings have some bandwidth over the network, and some memory, both of which are much cheaper, and then the time that it is going to take to create the options, checks them and supports them.
Now, if there is a very significant selection logic (joining different tables, etc.), then you might be better off having specialized SPs.
The latter is not prematurely optimized. Build it simple and working first, and then when you find that you need an extra millisecond, you can look at the setting.
source share