Good luck with that. Unix shells won't change any time soon. It's hard enough to get filenames with whitespace working properly.
Forbidding control characters has an immediate upside and comes at almost zero cost. We could do it tomorrow, and nobody would notice except for increased robustness. Not doing that and instead pining for a perfect solution is just unrealistic.