Hi,
1.
The getPath() method on the reference object is the generated getter to match the setter for the path attribute of the reference object. You will set the path of a reference when you want to reference a node in a service call by path rather than by guid. Guid and path on reference are mutually exclusive.
When a reference is created and returned to you from a service call the path will generally be null as the Guid of the node being referenced will be known.
2.
The URL in the content property is used by the content store to identify the content. Outside of the content store the URL has little meaning. At the moment the only way to get at the content from the web service API is to ask for the content object and use the generated download URL.
3.
We do have two standard types defined that represent both dictionaries and documents. The standard web service API's can work with these types, but provide no helpers. In the repository there is a file folder service API that provides an API specific to the directories and documents, since this is such a common use case. The web service equivalent was scheduled for release in 1.3, but has now had to be moved into 1.4.
Hope this helps,
Roy