I’ve sent out the bat signal (duck signal?) to a dev to see if this is the intended behavior. Based on the fact that the taxonomy query parameter specifically says to use it with the terms attribute, I wonder if this is simply how PHP’s wp_query feature works in the first place. I can see why you’d want to use the syntax as you wrote it (I would have assumed that would work too), but it would also make sense if the terms parameter was necessary since WordPress stores post IDs alongside taxonomy terms, not taxonomies overall.
In any case, I think it’s possible to work around this pretty easily with something like this:
Thanks for the reply.
There are many work around options.
As I only want to present an error message if something is empty I ended up to set a variable when there is content and to present the error message if the variable is not set. So I do not need to loop multiple times - just using the loop I run anyway.