I guess they aren't the same, In JSF 2.0 they are used as direct links they don't issue a post request and then a redirect, instead they issue a get request directly to the URL specified, so they don't have an action attribute. Besides they have more feature that didn't exist before e.g. Integrating with View Parameters.
These new components are exciting mainly because they were sorely missed in earlier versions of JSF. At last, they are available. The reason they were missed is because regular hyperlinks happen to be the most common way to link pages (the other way being a form submission). So the thing that you had to do the most often was kind of difficult. Your only option was to use <h: outputLink>. But that component has no concept of view IDs, so the target would have to be a URL that included the servlet mapping (*.faces or /faces/*).
The <h:link> and <h:button> are also compelling because they can manage the query string for you when combined with view parameters. If you've ever created a search form like bugzilla (see https://javaserverfaces-spec-public.dev.java.net/issues/), you would have had to itemize and propagate each individual request parameter that makes up the search anywhere you have links on the page. View parameters allow you to declare the request parameters on the target page (as view parameters) and those parameters will automatically be added to any links that target that view ID. So it turns out to be very convenient.
Another benefit of the <h:link> and <h:button> tags is that they enforce the POST, Redirect, GETpattern, which provides a much more consistent, user-friendly experience that is safer from potential issues with duplicate form submissions the "back" button.
Lincoln Baxter, III | [url]http://ocpsoft.com/[/url] | Creator of: PrettyFaces - Bookmarks, Navigation, and Dynamic Parameters for JSF
subject: JSF 2 : what is all the buzz about the <h:link> and <h:button> ???