Gack. Thanks for the catch. That was stupid. Fixed, node has been updated.
The new behaviour is a tad more consistent, but still not consistent with the documentation. What gets returned is the last expression from the body of the do, while the last one evaluated is clearly the while/until condition. (Arguably, the real behaviour is more useful than the strictly doc-adherent one would be.)
Makeshifts last the longest.