The specification does list a number of situations in which an implementation is required to flush a command but outside of that it doesn't conclusively state whether flushing a command queue is allowed or forbidden in other API calls or outside of API calls.
Discussed on the 2020/11/03 teleconference: consensus that implementations should be allowed to flush command queues at any time and the specification should be clarified to say that.
The specification does list a number of situations in which an implementation is required to flush a command but outside of that it doesn't conclusively state whether flushing a command queue is allowed or forbidden in other API calls or outside of API calls.
See discussion on https://github.com/KhronosGroup/OpenCL-CTS/pull/1012