Behavior class says that behavior is not stateless if it is a request listener:
In Behaviors "util" class the stable ID is generated for NOT stateless (i.e. stateful) behaviors:
BUT in AbstractDefaultAjaxBehavior#onBind there is a contradictory piece of code, that generates ID for stateless behaviors:
The AJAX behaviors are always IRequestListener so they are stateful by default (unless the getStatelessHint is overridden).
It does not make sense to me... generate ID for stateful behaviors on the one hand in Behaviors and on the other hand for stateless in AbstractDefaultAjaxBehavior.
I suspect that this could be bug.