You already got an excellent reply, but I'd also like to add that a foo -> c++ -> binary compiler chain is considerably simpler than a foo -> x86 jit. Certainly both are within facebook's capabilities, but the former is both quick to write and leverages the capabilities of the c++ optimizer and c/c++ runtime. The latter requires understanding the instruction architecture and writing your own runtime support.
Matt Might has a couple nice posts on compiling toy schemes to c or java.
Matt Might has a couple nice posts on compiling toy schemes to c or java.