Adding a not supported message is a design choice. The parent did not say that the library should not make a CPU implementation, just that the fallback should not be automatic.
For some applications, it might be appropriate t fall back to the CPU, but change the problem resolution, for some applications it might be appropriate to not event attempt the run the software, and for some applications it might be appropriate to just run in CPU mode if GPU mode is not available.
But I completely agree with the sentiment, that this should solely be the developers choice.
I think the developer should be able to explicitly disable the fallback, but I'd really like it to be enabled by default. I don't trust developers to think about weird hardware configurations, and I'd like the software to do what it can to (hopefully) keep working instead of just locking me out.
For some applications, it might be appropriate t fall back to the CPU, but change the problem resolution, for some applications it might be appropriate to not event attempt the run the software, and for some applications it might be appropriate to just run in CPU mode if GPU mode is not available.
But I completely agree with the sentiment, that this should solely be the developers choice.