The two posts are a little bit different. While you have asked how to pass option to the gcc compiler, @drkameleon knew how to do it. Its question was about the -O2 flag and not the -O3 flag.
There is still an open question. Can we have -O2 (which is useful by example for profiling code), without having to throw away all --opt:speed optimisations ? If yes, is it possible to do it without having to do a specific Makefile ? This is an issue if flags given with --passC are overwritten by other Nim flags silently. Shouldn't it parse --passC flags and compare them with Nim flags, and give higher priority to --passC flags ?