* functional style makes it easier to split stuff since you mostly transform immutable data
In the Article IO, State (side-effects) and Data transformation is mixed in both versions. That leads to unnecessary complexity. In that case worse if it hides in sub-functions. But separate it and the right version is better. (you can answer the question about idempotency easily now)
* Comments over blocks of code are harder to keep in sync with the code below, they require more discipline from all team members
So in theory they are nice, but you will never have them unless you enforce them through proper code reviews.