Yes and no.
It offers a smaller range of colors assuming that integers are required for each value. Photoshop, for example, requires HSB values to be integer and will yell at you if you try otherwise:
However, your math seems to be off. You're on the right track with RGB: each value can be an integer from 0-255, so the RGB gamut consists of 256³ or 16,581,375 colors.
For HSL, the value constraints are different. H can be 0-359, S can be 0-100, and B can be 0-100. So the number of unique HSL triplets is 360*101*101, or 3,672,360. This does not yet take into account duplicate colors and we're already significantly smaller than RGB.
I am not good enough at statistics to calculate the number of unique values for integer-based HSL, so I won't even try
As a result, there is going to be color collision. You can try this yourself by checking the value of two very close RGB values. For example,
#00AAAB are both converted to 180°, 100%, 67% in Photoshop:
Illustrator is a bit more laid back. It is happy and willing to accept decimal values for HSB:
CSS3 also accepts decimal values for
hsla(). This implementation makes it way more granular than RGB, which should never accept decimal values.