One of the things that came out of a session that happened during the recently concluded Selenium Conference held in Bangalore was the need to abstract out Page Objects as dummy objects and have business entities sit between a test and the actual page on a browser.
This would ensure that Page Objects are generic enough such that they only provide you means to interact with an actual web page and the Business entities serve as a means for the test to accomplish its intent.
Personally to me this makes a lot of sense, because amongst the same set of 500 page objects (For e.g.,) its only the business entities (That represent various different work flows) which would keep changing in order to satisfy the needs of a test's intent (What the test is trying to test out).
So if you adopt this model wherein the page Objects merely serve as dummy objects, then they can be really generic.
This is one of the things that we managed to do in a different way when we built Selion (
http://selion.io). Hope that answers out your question.