Making Component easier to Generify
Have you considered moving from subclassing to composition in Wicket using Callable<T>?
Currently it is quite common for developers to subclass a component in order to override isVisible() and other properties. I am proposing that instead the component classes become final and properties may only be set using setter methods. The setter methods would take Callable<T> instead of T, so for example setVisible(boolean) would become setVisible(Callable<Boolean>)
The benefit of this approach is that you could introduce static factory methods to the Wicket components which would make them much easier to use in their Generic form. You could then introduce various helper classes to create Callable<T> for constant values, such as Callable.valueOf(true) would return a Callable<Boolean> that always returns true.