Does Scala perform deforestation? If not, then separating construction and deconstruction is an abstraction win but a performance loss. A commenter, brandon, mentions this.<p>That being said, I've always preferred to think in terms of separation of (computational) concerns, something functional programming excels at. And it's often not hard to deforest manually when the time comes.
I've only been playing with it for a few months but I really like Scala. Its worth remembering when you look at the code that this is a compiled, statically typed, language running on the JVM. Its so easy to forget this because it feels like coding in a scripting language.