"pure FP" does not mean only writing in a functional style. Purity refers to referential transparency, ie., functions do not depend on or modify some global state.
I know what purity is. It is a core principle of functional programing. So ”functional“ already implies purity, and ”pure functional“ implies exclusively functional (e.g. Haskell).
Purity is not a requirement for functional languages. See Ocaml, Erlang, Racket, Scala, Clojure, Common Lisp, etc.
Actually even further: They also don't modify/mutate any arguments. If they did, then that could raise problems with concurrency.