I think that the author's point was that C# was imperative and linq is functional. But the merge of the two does not give you best of both worlds, but rather to worst of both.
In pure functional coding the lack of side-effect guarantees safety during parallelism at the cost imperativity(code readability for those who have only ever written imperative code.).
In purely imperative code you get a guaranteed order of execution at the cost of simple parallelism because you are managing shared state.
With both you get to juggle the order of execution and shared state with none of the guarantees!
It can be done and I have seen it done successfully, but I would argue it is not a good starting point for a project or a language design.
In pure functional coding the lack of side-effect guarantees safety during parallelism at the cost imperativity(code readability for those who have only ever written imperative code.).
In purely imperative code you get a guaranteed order of execution at the cost of simple parallelism because you are managing shared state.
With both you get to juggle the order of execution and shared state with none of the guarantees!
It can be done and I have seen it done successfully, but I would argue it is not a good starting point for a project or a language design.