Isn't it important though how good CPP is at being Haskell, and how good IO is at being C?
This seems to come back to that original Scala-is-not-functional article, which seems to argue that it isn't features or purity that makes a language "functional" or not, it's how good the language is at working with that style.