In After Effects cs6 scripting guide, it says that the attribute "numProperties" returns the number of indexed properties within a group of properties, and because of so when it is used with layers it will return a value of 3 corresponding to the groups of "effects", "masks", and "motion tracker".
but whenever i try it with any layer or any group of properties it returns the number of all the children within. this confuses me, makes me work without confidence.
It most likely speaks of Layer Object which indeed has just those three indexed properties.
Layer Object's subclasses (like AVlayers or Text Layers) have many other indexed properties which are counted by numProperties.