This is a using-the-API question; not sure if it belongs in galaxy-dev or galaxy-user !

galaxy-dev is best because it's dealing with the development of Galaxy.

There seem to be two ways to retrieve metadata for a dataset, one in the Histories API and one in the Datasets API. They return different information.
...
I am also a bit confused by the existence of the two different methods in the first place. Is it necessary for it to be this way, or are they just there for historical reasons?

Historical reasons only; this should be fixed. Nuwan had a pull request along these lines that I've asked for modifications to before accepting:

https://bitbucket.org/galaxy/galaxy-central/pull-request/70/modified-api-to-generate-uniform-json-for

Best,
J.