Hearing that they use Racket now, that just makes me all happy inside.
They are using Racket to generate C++ code.
GOAL compiled to native code, which made this possible. It also made it easy to mix and match assembly primitives in with your existing code, using the same syntax (much nicer than GCC's intrinsics).
This was before the days of LLVM, so the code generation phase was actually enormous amount of work (Andy spent a lot of time on the register coloring, for example) - not to mention having to write a debugger.
Uncharted is using a LISP-like scripting language for gameplay scripting. Most large games use scripting these days (LUA is pretty common), this just happens to be a lisp-flavored variant of that. There's a huge difference between writing your gameplay scripting in a lisp and building your entire game in it.