1) Does all this depend on use case? Yes, heavily. Best practices are needed, but final design choices are tailored.
2) I don't like dup query params, it's not well defined: http://stackoverflow.com/questions/1746507/authoritative-pos...
For returning multiple types at once there are a few common strategies.
For related types some APIs offer an "include" or "embed" approach like this: http://www.vinaysahni.com/best-practices-for-a-pragmatic-res...
Another approach is to support a query syntax for items, where items is a container record for multiple possible types.
If a certain multi-type scenario super common you may want build the concept into the API itself as basic functionality.
Again, your final choice should be as simple as possible but no simpler, taking into account ease of use, performance, etc.