I have been trying wrappers for one year and eventually got tired and bored. There are mainly two reasons.
1. I could not make wrapper that is working fine all the time, because as I said in the first post there can be number of things that can happen to element. So even if I think that I finally made wrapper for click method that is perfect, it will work for some time but I will eventually hit some element that is failing the click. Now I need again to repair wrapper and it gets bigger and more ugly every time.
2. They are too generic. For every element that I want to perform click, I will do number of checks that are not necessary.
Currently I am trying to work without the wrappers and will see how things go. I am handing waits in Page Object classes and every method is very specific. For one button in some PO class, click method will be very simple, maybe without any waits, just driver.click(). But for some buttons click method would have waits, and what waits I'm using is specific to this button and the behaviour of the page.
I will continue in this manner for some time and will compare to wrappers style.