In official AVR Arduino core, delay() is based on yield(), which is turn has weak binding and is overridable.
I am asking that delay() on any Arduino platform must call yield() at least once, preferably at the end of delay(), for compatibility with libraries like Scheduler and similar implementations.