Because that behaviour might not be desired?
Desired by whom?
If the scripter wants that then the -o switch exists.
Well that's no alternative, because then the file would be overwritten if it exists. I'm just saying the two should be consistent, the -o switch opens the file whether or not the file exists (overwriting IF it does exist), the -n switch behavior should be the same, open the file whether or not the file exists (creating a new file IF it doesn't exist). The only time it should fail is if no switch is used and the file doesn't exist.
If the -o switch behavior were consistent with the -n switch behavior, then it would create the file (overwriting IF it exists) and then fail, like the -n switch creates the file (IF it doesn't exist) and then fails.