The issue is now solved. Rootcause was the usage of Map to hold the data.
Combobox once rendered on the UI keeps refering to same data pointer e.g.
or
will keep on pointing to the soSuggestionList of same key in the HashMap even if c:forEach has rerendered the UI component.
Solution is to use List instead of map. On re-rendering the UI component, we will actually change the binding data to the suggestionValues property of rich:comboBox.
Final working piece of code (with few more modifications) -
P.S. Thanks to Peter for the help.
http://community.jboss.org/thread/174919?tstart=0