Let me clarify that a bit further -- I'm not excluding languages which offer mutable data structures, even in standard libraries. I'm simply excluding languages where the use of these data structures are de-emphasized.
This isn't a precise scientific definition of a functional language, but one that seems to quite cleanly differentiate languages like Haskell and ML from languages like Javascript and C#, all of which have first-class functions.
Your definition also clearly differentiate between "Common Lisp as is taught on universities" and "Common Lisp as it's actually used", which might or might not be a good sign.
This isn't a precise scientific definition of a functional language, but one that seems to quite cleanly differentiate languages like Haskell and ML from languages like Javascript and C#, all of which have first-class functions.