Thing state "initialization fail" question

The documentation (here) specifically states:

If the initialization fails, the Thing goes back to UNINITIALIZED.

How does/can the “initialization fail”? The initialize() function is void, and it does not appear that setting one of (UNKNOWN|ONLINE|OFFLINE) status is considered a “failure”. So are the failure conditions strictly internal to openHAB, like a timeout/internal error, or can/should the binding signal an initialize() failure in some way? I may have missed something and that’s why the documentation seems ambiguous to me.

AFAIK is UNINITIALIZED internal. Bindings should only set one of UNKNOWN|ONLINE|OFFLINE.
When there is a configuration error. The binding should set it to OFFLINE with status CONFIGURATION_ERROR and the specific configuration error message in initialize. When no status is known yet it should set to UNKNOWN.