Without knowing anything about the original problem, I think it is fair to say that GET does have its share of overhead in terms of latency - compare looking up N users by 1 single HTTP request to looking up N users by N requests: with about 100 users and a latency of 50 ms you go from 50 ms (plus payload) to at least 5 sec user waiting time. I believe it is a rather common scenario to fetch lists in batches.
Yes.
You can let the API handle both - that should not be such a big code overhead. Then let the client decide whether to do GET or POST depending on the amount of IDs.
But why not always do POST? Well, there can be some caching issues - GET can be cached but I am not so sure about POST.
If caching is not an issue and you really expcect LARGE numbers of IDs then use POST.
/Jørn