Frankly, we have a ton of testing related special cases in the kernel. This one is a) simple and small, only 10 LoC, b) far away from the fast path or any other place where it could have any impact on legitimate users and c) it prints an informal message showing you what happened. Sorry but this is a https://xkcd.com/386/ moment.
How about we just fail it with a proper error message and let the user set buffered_io instead of trying to get smart here...