No. Simply creating a ValueChangeListener won't do what he wants. When he used the term "immediately" he meant "as soon as the value changes" and not "immediate" in the sense of bypassing Faces lifecycles. This can be seen from his reference to "onchange=".
The suggestion I am about to make solves one problem but creates another.
In addition to valueChangeListener= "#{...}" and immediate="true", put onchange="submit()". This will execute your event as soon as the value changes BUT...
Faces navigation doesn't work any more when you return a navigation target.
How do we get Faces Navigation to keep working when we use "onchange" ?