The point you're raising with inconsistent flow is valid, and we agree that the 3rd solution is the best one, see feature #521.
Regarding the database query issue you raise, this behavior is applicable in the case where the output is a scalar type. If you change the output to a composite type (a structure with a single field), then Database Query would output a structure with the field empty (=NULL).
The support for output of scalar types is useful, but not straightforward, and we feel there's no correct method to signal the case of NULL output (a special exit just for this case would be excessive), so given the above mentioned alternative (there's also the alternative of using 2 Exists elements), we do not plan any changes in implementation.
For best results, use the Firefox browser..