The point of the build.sh method is that the *tools* used to make the kernel
are themselves re-freshed from the current state of the source tree. If you
run with current userspace tools, you risk missing changes to the toolchain
which have relevance in the kernel. eg, imagine the .o format has some
non-compatible change and kernel LD fails because you don't account for it.
In effect, a 'manual' method is to do
cd /usr/src
./build.sh tools
cd /sys/arch/<ARCH>/conf
/usr/src/tools/obj/tools.NetBSD-<VER>-<ARCH>/bin/nbconfig <FILE>
cd ../compile/<FILE>
/usr/src/tools/obj/tools.NetBSD-<VER>-<ARCH>/bin/nbmake-<ARCH> depend
/usr/src/tools/obj/tools.NetBSD-<VER>-<ARCH>/bin/nbmake-<ARCH>
/usr/src/tools/obj/tools.NetBSD-<VER>-<ARCH>/bin/nbmake-<ARCH> install
This is only marginally more complicated than you scripted as your normal
behaviour. And it has the advantage that it uses a known good set of tools
from the source hierarchy.
If you don't have /usr/src, then clearly the plain old make method is all
you can do.
cheers
-George