Are non-scoping `begin ... end` blocks useful?

I use it in one-liners like the following:

x = (3, "TEMP")   # in real code `x` comes from an user terminal input function, which can return nothing

!isnothing(x) && (begin n, dir = x; end)

I just remembered one interesting example from this other post, by the way, which I rewrite here for reference:

foo() = 3
!isnothing(begin x = foo() end) && println(x)