You can look this up by looking into the following documents:
common.j
blizzard.j
Any function that creates a game engine object with handle will definitely leak.
GetPlayerStructureCount > can be found in common.j, doesn't appear to create an object
CountLivingPlayerUnitsOfTypeId > can be found in blizzard.j, creates a group, destroy it, but doesn't nil the local group variable. So in JASS, this function will create an unpreventable handle leak. In lua it doesn't leak.
CountUnitsInGroup> can be found in blizzard.j, doesn't create an object or unremovable handle reference
Aside from what can be seen in above documents, many functions run in the engine internally, and it is unknown what they do exactly. For instance, it was tested that CreateUnit creates a memory leak even if everything is properly removed. This is tested by running the function many times, and see the game memory usage permanently go up. I'm not sure for which different functions this has been tested and which haven't, but I think I've read here that most functions do not have such memory leak.