Also, where do you go from "preferring strong CS theoretical grounds" to "cutting corners"? They don't have to be mutually exclusive.
That garbage collection that Haskell has? Guess where that came from. The whole "functions as data to pass around", guess where that came from. It was those pesky lispers on a Tuesday.
Edit: typo