I would assume the same as payment:others=no implies for payments, or language:others=no for languages, or currency:others=no for currencies etc. – that the list of prefixed values is exhaustive / complete as entered, i.e. that all other unmentioned xxx:* tags are explicitly =no (instead of =unknown).
E.g. recycling:engine_oil=yes + recycling:shoes=yes + recycling:others=no means that only engine oil and shoes can be recycling there, and absolutely nothing else (so recycling:paper=no, recycling:cans=no, recycling:asbestos=no ad infinitum for any possible recycling:*=no).
Well, it depends who you ask. It might be that this assumption is correct. But it is also likely that the mapper only mapped what they saw / had time for, instead of exhaustive search of everything (some of which might not even have recognized tagging yet), IOW it may be the case that the default value for unspecified things is not =no, but =unknown instead.
That is the case with many other things in OSM – e.g. just because some highway does not have lit=yes tag, does not necessarily imply that it is lit=no – while it might be the case, it is just as likely that nobody got around to adding lit=* tag instead.
Since OSM does not have a metadata stating “every detail on this element has been surveyed, so anything not tagged does not exist”, people have devised such tags to emulate such metadata for certain groups.
So, if a shop has payment:visa=yes + payment:mastercard=yes + payment:others=no; it means that they won’t accept your American express card, or your Diners card, or your JCB, or cash, or Bitcoin or whatever. Only Visa and Mastercard.
In any case, if everybody agreed with claim that “Anything without =yes isn’t accepted anyway”, then both recycling:xxx=only and recycling:xxx=yes + recycling:others=no would be equally useless and fully equivalent to just recycling:xxx=yes.
Ummm, yes? If anybody edits the element in any way, then then meaning of that element changes accordingly to their edits? How it could be otherwise?!
If somebody edited that recycling:xxx=only to recycling:xxx=no, the meaning would also change. As it would if they replaced amenity=recycling with amenity=waste_basket, or made literally any other change. I think I’m missing the point here 
Um, how? If the editor explicitly supports either variant, it will warn the users and/or forbid adding extra recycling tags equally for both variants.
And if the editor does not support (either of) them, it will again fail to work correctly for both (e.g. StreetComplete which started this thread might result in replacing =only with =yes, or removing recycling:others=no tag; or JOSM might add recycling:yyy=yes in addition to recycling:xxx=only resulting in nonsensical combination which requires resurvey etc).
So both recycling:xxx=only and recycling:xxx=yes + recycling:others=no will fail if editors do no support them. But latter has several other advantages mentioned before so would much preferred if you wanted to explicitly indicate that nothing but the explicitly specified things can be recycled.
In any case, if you want to inform other mappers about non-obvious information about an element, the best way to do that is by using note=* tag whose purpose is exactly that (and which is most widely supported, and works for everything, not just very specific narrow case).
And it works even in StreetComplete (which started this discussion), e.g.: