Could we please have an interface to tag components that support type safe default models (Think Link, GenericPanel etc). This would help enforce consistency across these types of components.
public interface IGenericComponent<T>
void setModel(IModel<T> model);
void setModelObject(T object);
It may also be a good idea to implement a helper utility that does all the casting etc, and takes an additional Component argument per method.