This happens because Post.default_scopes returns an empty array and .default_scopes? calls !! which is true. But this can be confusing, don’t you think?
It's not documented since it's dynamically defined.
Many dynamically defined methods are documented in various places (in
the Rails Guides for example).
If it is not documented how am I supposed to know how what it does?
However, you can still understand what it does by:
using it in the rails console
reading the source
reading its name (in this particular occasion, it's very obvious)
Generally I assume that if a method is not documented anywhere then it
is probably not intended to be used by lesser mortals, and may be
liable to change without warning, and therefore I do not care what the
interface is. Perhaps that is not be a reasonable stance to take
however.