I perfer the current behavior of $bvar(&nonexist, 0) It reduces two checks to one
if ($bvar(&nonexist, 0)) ...
if ($bvar(&nonexist) && $bvar(&nonexist, 0) > 0) ...
with $bvar(&nonexist, 1-).text or $bvar(&nonexist, 1, ...).text I wouldn't be against it returning an empty string