Is there a way to set things up so I can run C programs with #! and also compile them with gcc/clang? tcc supports -run, but even if I make my own wrapper gcc will refuse to compile a file starting with #!.
You could write a wrapper script, just like the #!/use/bin/cl that I wrote as a wrapper for Common Lisp (and that supports tens of different Common Lisp compilers, caching, making binaries, etc.) That said, Common Lisp isn't as braindamaged as C with regards to configuration.
Read my blog!