I profoundly disagree with that. Comments always end up not following the actual implementation. In this example, &quot;self documenting&quot; the code would be to name the function &quot;unbufferedRead&quot; or something similar that shows that not having a buffer is part of the contract. You make it buffered, you&#x27;re breaking the contract.
Anything else is merely applying temporary (because they&#x27;ll rot), hidden (because if someone is reading code that calls myVeryWellDocumentedFunction, they won&#x27;t see the documentation, especially if the function is just incompletely named) and inaccurate (because the only accurate thing is the code) band aids. 
There&#x27;s a reason it&#x27;s said that naming stuff is one of the hardest things in programming.