It's fine to give code to referees who want to see it under peer review. I have no problems with that.
If you release code more generally, you need to support it. You will get questions. If you don't answer them, your work will be brought into question. What's this thing about "working as advertised"? Scientific code is quite often written to be used for a short time on specific inputs on a specific computer system. It won't "work as advertised" without a lot of support and hand-holding.
By assumptions, I mean things such as filename standards, format of data, and so on. These aren't scientific assumptions, but assumptions of the code itself, so are different things.
And keeping code private isn't to stop people reproducing what you did, but to not allow others an advantage in an area you are working on.
Reproduction of results is about independent verification anyway, so they probably should be starting with the raw data and not working with an existing code.