If a customer pays me for a design that took me 3 hours to do and she paid me for those 3 hours and it was a design I had done specifically for her an at her direction and she hired me as a graphics designer to do that work. She then paid me more money to print that artwork which she had paid for.
I can only speak for myself here, but here is the distinction for me.
It all depends on what I was commissioned to do and what fulfilled the contract.
If the contract is for an end product and
only an end product (and I don't have another option there, it's only the final product), that contract is fulfilled when those products are placed in the customers hands. What they pay for is the costs of inputs (both labor and physical inputs) that go into that finished product. They don't get all of those inputs.
Now, when someone commissions me for the file, absolutely that goes to them. The contract will never get fulfilled otherwise. Typically, these people do not have me do the finished work as well. The only reason that they would, at least the only reason that has come up for me, is that the machine that they use (some actually do have different, typically local, shops that do the work for them, they don't do the finished work as well) is down for whatever reason or there is a significant wait time for their order. But they are commissioning me specifically from the outset for the files first. Then sometimes they come back and go "hey can you do X for me". Not the other way around.
Here is the rub as well, if I were to give them my specific production files. My productions files, the ones that I actually use for the end product, are human readable CSV files, not files like a DST (which is what I send to my digitizing customers and probably what most on here would expect to get). I have specific software that reads that, converts on the fly and send that to the machine. Mainly that's done due to there are abilities that I code for my machines that not only are not recognized in the DST format, but not all machines take advantage of even if the DST file recognized it (which one of them it does not).
The chances that they would have in the wild of finding another shop that would be able to take that CSV file (and there are a lot of programs that read CSV files, simple text editors can read them) and use it are significantly smaller then you (or anyone else) handing them a SignLab or Flexi (or whatever) native file and them finding someone that has that program. But, in my case, that CSV file is what I use for production when they commission me for a final product. That is my production file.
Now could I convert to something that they could use, sure, however, it would no longer be the file that I used for production as not all the functionality that I use will make it to that newly converted file. It would no longer be the exact production file that I used. How many of them do you think would like the fact that it isn't the exact file that I used for production? I actually can't stand it when I read about people
that have a policy of actually giving the files to any that ask regardless of what they were commissioned for, if the person asking told them that they found someone cheaper (which they might legitimately be cheaper and not just underselling or ignorance of what their pricing needs are) that will tweak the file to offset quality that the other shop will output, or at least increase the odds of that happening.
Having said all that, whichever way you want your policy to go is actually fine, just make sure that it's written down to where the customer can read it and they are aware of it
before the job starts.