I once worked with a guy who wrote whole functions in comments before writing the actual code, like in the sample below
I've seen it, and there is only one thing I dislike about it when I see it. Usually I'm grateful for it.
I've seen many times where it makes sense to document the algorithm being used, or to provide an easy-to-read description of something that may not be obvious, or occasionally to state something like "This is an implementation of such-and-such paper from SIGGRAPH, a copy should be in this folder."
That last one is particularly nice. I may look at a function and have no idea initially what it is doing, but the link to the research paper with a good description of the algorithm and the reason for the choice, that helps a ton.
I've seen comments like that noting that the code was like that as a hacky fix to bug 4723. I've seen comments that apologized to everyone in the future for the implementation but the designer and producer is firm that it must be a certain way.
I've seen comments with a warning that doing it some simpler way doesn't work for certain reasons. I've seen comments warning that before changes were made to a function developers should check with the team lead (or former team lead) and to profile before and after due to performance concerns.
And I've written a comments like all of those above. When the comment relates to other parts of code, often I'll put the date on the comment so the maintainer can figure out how fresh or stale the comment is.
Many times the comments are useful. Remember that while the code needs to work for the computer, it needs to be understood to everyone who comes by later (including your future self) who maintains or extends the code. What may seem obvious to you when you are writing the code may not be obvious to a maintainer who is trying to change it months later. Sometimes that person is yourself, thinking "I remember this was needed for a good reason, but I don't remember exactly why."
I don't have a problem with it as long as the comment matches the code.
The moment they get out of sync, that's when I don't like it. And unfortunately, it is easy for the two to fall out of sync.