Where should "git -C sub/dir apply this.patch" find the file "this.patch"?
More generally, when "git -C there cmd arg1 arg2 arg3..." is run, how
should the implementation of cmd learn what to prefix arg$N with?
I'm afraid you hit a somewhat reoccurring issue here. chdir'ing looks
simple, but it has many side effects, such as on relative paths (as
Junio pointed out) but also on the order of parsing config. Having -C as
a global git option would require dealing with all of these effects.
On the other hand, a shell function can achieve the same very easily.
The side effects are left to be dealt with by the user then ;)