There are a few very minor inconsistencies in the details such as that the
modules_install make target for external modules doesn't exist anymore, and
it's ``make install'' now (in fact, since quite a while). Almost anything
else still applies. I agree that the README isn't perfect, but the rants in
this thread are unfounded.

I know how a specific output directory can be set. But this setting is
independent from a flavor.

Yes, with O= for building an entire tree, and with M= for an external module,
which sets the source as well as the output directory. Use that unless you
are building directly in /usr/src/linux. Note that you cannot both build
directly in /usr/src/linux and use that tree with O=; for O=, the source tree
must be pristine (like it is originally and after ``make mrproper'').

Can it be specified without a change for the header "utsrelease.h"?
Which is the current recommended way to configure it? Are there any command
line parameters or environment variables which control the definition of
macro symbols like "UTS_RELEASE"?

I don't understand -- the README never even mentions utsrelease.h. Each output
tree will contain a specific version of utsrelease.h matching a specific
source tree and configuration. That's all internal to the kbuild mechanism
though; if you worry about that, something is already wrong. You put an
appropriate configuration file into a source tree or into an output
directory, do a ``make prepare'' specifying the appropriate directory or
directories, and this creates you all the kbuild internal stuff. Have a look
at /usr/src/linux/Documentation/kbuild/modules.txt...