This returns three species: Cabbage White, Cabbage White Parasitoid wasp, and White Skunk Cabbage.
However, on the basis of a few experiments, when I search on the scientific name I get only the desired species, even if other species in the same genus occur in the area of interest.
Can searching on scientific name be expected to return 0 or 1 results in every case?
I don’t think there’s any trick here. When you searched using name=Cabbage%20white it is returning every observation with both cabbage and white in the name. When you search using a scientific name it’s interpreting the whole two-word name as a taxon, and that has a unique taxon number (for Pieris rapae, it’s taxon_id=55626). If you want a particular species, it’s always better to search using the binomial scientific name, which should be unique.
Searches using &taxon_name will sometimes get more than one hit, due to the presence of species-level homonyms and synonyms within the iNat taxonomy. For example, Ficus variegata currently gets three hits (two homonyms and one synonym):
These cases can often be resolved by adding additional qualifiers - but of course, the iNat taxonony isn’t static, so it’s hard to know in advance which ones might be required.
In general, using &taxon_id will give much greater certainty, since that should always resolve to a unique taxon (although even then, you may need to qualiify it further with &taxon_is_active).
Botanical and zoological names can overlap in a few cases. I came across one today where someone ID their Dracaena (plant) as Dracaena (lizard), Gambelia is another one with genus names in both areas. These are rare, but taxon ID numbers are a tad safer as 124826-Dracaena will not be confused with 38639-Dracaena.