The fact that Unix tools have trouble with spaces in filenames is absolutely a problem with Unix. If the Unix ecosystem had better support for this, then it wouldn't be a problem.
It's perfectly fine for a rule to have multiple targets, e.g.
output.txt error.txt: source
build source > output.txt 2> error.txt