That there is a bug.
pymel parses the api documentation to learn about the arguments of the api methods, because this cannot be gleaned through typical python inspection. The problem is that the api documentation contains many, many errors when it comes to specifying whether an argument is an input, or an output passed by reference c-style. from the docs:
[in] toThisPoint The point to test
[in] paramAsStart If true use the value pointed to by param as a starting point for the search.
[in] param pointer to a double. If non-null, on successful returns this will contain the parameter value of the returned point.
[in] tolerance The amount of error (epsilon value) in the calculation
[in] space Specifies the coordinate system for this operation
[out] ReturnStatus Status code
as you can see 'param' as marked as an input, but it's actually an output (aka a result). the good folks at autodesk are working on fixing this. Isn't that right, guys? :)
when pymel generates the cached 'bin' files from the docs, it uses an algorithm that checks names, number of outputs, descriptions, etc, to attempt to detect correct these mistakes. it also contains a manually maintained list of overrides. in this case, we'll have to manually fix it.
to fix this we would correct closestPoint to always return 2 values, a tuple of (Point, float).
in pymel, you should never have to pass values by reference. if you find that you have to, there's something wrong.
-chad