While I defer to @mtruyens on whether the behaviour of @if in this case would be desirable in his view, I can already suggest another special function which would be more suitable for this use case.
The @cascade was specifically developed to handle cases where you want to define fallback values to be displayed if a (or any number of) expression(s) evaluate to nothing (e.g. false, zero,…).
E.g. @cascade(@fullcurrency(#cash^amount), @empty-list) will show @empty-list if no value has been assigned to #cash^amount.
So @cascade is the special function to use in these cases as opposed to @if.