The problem with keywords is the compiler can know nothing of intent with them - consider:
CopyFile(from: loaded_file, to: report_file)
Now, somewhere else off in the code someone does something like: // loaded_file is now the report - so no worries.
loaded_file = report_file
And the compiler then happily propagates that. At no time does it throw an error saying something which would be quite informative such as "Cannot assign report_file (type: outputFile) to loaded_file (type: sourceFile).Which is really what we want to have happen because - at the very least it forces the developer to go inspect the usage sites to figure out if what they're doing makes sense.