The GenericElement PageObject class is basically the WebElement of page objects.
It opens up all methods of WebElement which were not already implemented in PageObject (maybe with a different name).
It mainly intended for the Ad-Hoc find API in order to minimize the number of calls needed to make when rapidly prototyping or looking up deeply nested elements.
GenericElement provides a method as(Class) which allows the 'cast' of the generic element to any other PageObject class.
// find returns a GenericElement
Button b = browser.find(#button).asButton();