Of the coreutils programs that use O_NONBLOCK:
chown and touch don't do I/O.
dd uses O_NONBLOCK only when the user asks for it explicitly.
shred uses it only on /dev/random.
stty uses it only on its argument, which is supposed to be a device.
(There is a FIXME that this assumption should be checked, but there's more
to be fixed here than O_NONBLOCK.)
tail does nonblocking reads in some cases but doesn't use select() or poll().
None of these uses would run afoul of the bug that you mentioned, as
far as I can tell.
POSIX is pretty vague about what O_NONBLOCK does, except for pipes,
fifos, and sockets. So if we limited ourselves to what POSIX
required, coreutils would require several changes. I wouldn't bother
with this, though, unless there's a real problem.