I'm the author of the opensource GPX Editor. So far the program can use the GeoNames webservices to get the altitude of a waypoint but some user asked if it would be possible for an entire track.
My answer was that it would represent a big amount of web traffic (some tracks can have more than 10000 coordinates) and that it wouldn't be very kind to get all this load on what is essentially a free service.
Is there a solution ? A better way of querying data for a list of points ?
I would like to avoid to setup my own GeoNames mirror if possible, and of course keep all this free.
The text version of the SRTM3 service also accepts a list of lat/lng for the parameters 'lats' and 'lngs'. On the free server the number of points per call is limited to 20.