For example, I might want a list of rail trails: objects tagged highway=cycleway and railway=abandoned. The only way I know of doing this is to download all objects with one of those tags and then filter them down, but either unfiltered list will be huge.

In the meantime it is even simpler: Go to http://overpass-turbo.eu/ , position the map, open the wizard, and enter "highway=cycleway AND railway=abandoned". It will automatically generate the needed query code (you may want to remove the "node" line from the code) and show the results on a map. Getting a "list" is a tiny bit more complicated (a real "list" format is not available in its export formats): setting the output to csv would be possible.

No, it is currently not possible. XAPI as well as the API only support searching for one tag.

Advanced data filtering and manipulation tasks are beyond the scope of our existing APIs. Power users wishing to perform such actions are advised to download the full area of interest, import it into a relational database (for example using Osmosis), and then perform queries on that database.