This is a really great case study, but I can't help but think some of the improvement comes from it being the second attempt at the project.
I'd really like to see some case studies going the other way: F# --> C# [or C++].
At the least, you could do C# --> C# [ie complete rewrite].
Any time you do a rewrite with more knowledge of what worked and what didn't, you'll have a better system.
So ultimately, the essay [like most] leaves the question: Is F# better? Or is it just that complete rewrites can provide substantial improvement?
From all I gathered about people that story was related to, it seems the F# project was done without looking at the C# implementation, on basis of same specifications.
If you were tasked to implement a project because first implementation failed, would you even read the first implementation or just base your work on the specification?
Oh good point -- it does say they were separate teams.
Should one read previous implementation? That's a difficult question. If you're worried about losing your perspective from seeing a single solution, then perhaps you're right that you shouldn't.
But it's possible that merely implementing it in a different [more functional] language would encourage sufficiently different patterns to allow you to keep perspective.
With all of this said, I am a huge fan of both C++ and Haskell. I had just had an internal realization that these stories might not be extracting the positive effect that a rewrite might have on a code base [even though, as you say, that is likely not relevant here].
I'd really like to see some case studies going the other way: F# --> C# [or C++].
At the least, you could do C# --> C# [ie complete rewrite]. Any time you do a rewrite with more knowledge of what worked and what didn't, you'll have a better system.
So ultimately, the essay [like most] leaves the question: Is F# better? Or is it just that complete rewrites can provide substantial improvement?