In my opinion, the documentation screenshot you posted is a documentation bug, or the reflection of a software bug in documentation. The behavior you see with arcpy.ListDatasets() is expected, and I would argue correct. Datasets are container "data sets," e.g., feature dataset, raster dataset, mosaic dataset, parcel fabric, and others. A feature class isn't a dataset, but in a general sense it is a "data set." There is an Abbott and Costello skit in there somewhere.
Where the bug, as I see it, comes into play is with the ArcPy Describe object. When describing a feature class, the datasetType property and dataType property both return the same value. That same is true when describing feature datasets. Interestingly enough, the same is also true for topologies and every other dataset I have tried. Which raises the question, why have two properties instead of just one? One would think a non-dataset wouldn't support the datasetType property, but it does, and that causes confusion as to what exactly a dataset is.
I won't even get started on "Geo." I have been pushing for them to either clearly define it or remove it because its current implementation makes no sense at all.