If you have a return statement at the top of your procedure, then it will do just that: Return.
Nothing after the 'Return' will get executed. So, in your latest example there is no recordset created, so none will be returned.

In order to get at your return value, you'll need to use the example that techgnome posted.

I'm still not sure why you want a recordset and a return parameter containing the same value...