The advantage of the ViewWrapper is that it directly has the methods every B4A View should have and in my opinion it helps a lot with wrapping another view.
The limitation that you can't have local members is normally not a problem since you don't need them. If you add functionality which requires local members there are two options.
1.) Create a Custom class which extends the class you want to wrap and add the members and functionality you need there. Then in the class which extends ViewWrapper/AbsObjectWrapper you can wrap the custom class and you can access the fields with getObject().getXXX().
2.) Do it the way Erel suggested.
As for AbsObjectWrapper it is great in some situations because you don't have to care about wrapping/unwrapping the native object. It is used in AppCompat library for the ACMenu and ACMenuItem objects for example. Because they are just wrappers for the Menu and MenuItem classes they can be transparently used for PopupMenus, NavigationView, ActionMode and so on.
As for local members. If I'm correct public static local members like for constants (see below) are no problem. Erel, please correct me if I'm wrong:
public static int SHOW_AS_ACTION_IF_ROOM = MenuItemCompat.SHOW_AS_ACTION_IF_ROOM;