requestFocus() was never specified to be called when focus changed, which is also reflected in its name: it's not called onFocusChanged() or something like it, it suggests a request only.
You point out that previously, an application could "decide what to do when a node receives focus. For example, a node could pass the focus on to another one." I don't think that we should be supporting any attempt to subvert the focus system, it's just not worth it. The Node.setFocused() situation is bad enough as it is. Most legitimate use cases for hacks like that can be solved by a focus delegation system, which seems to be due for our annual discussion round. So I'm in favor of doing nothing here, except maybe documenting that you shouldn't override requestFocus().
