The intent of action methods is to provide a ‘front-controller’ style programming model to JSF. There are of course other ways of achieving the same functionality (as you have described,) and all options are valid But if you prefer to define actions and outcomes in one place, then action methods are for you.
They can also be helpful for JSF environments where @PostConstruct is not honored or available (for instsance, older JSF1.1 and 1.2 versions where more advanced bean containers were not available.)
Hope this helps
Do you play Magic?
Get TopDecked MTG, the #1 Magic App, built by players, for players. Free to use, forever.