ABIDecoder is typically used to call static methods. It can also be used to call instance methods but it isn't typically used that way and we would probably want to handle the instance method case differently (potentially associated with some kind of explicit interface advertised to other callers and long-lived).
Additionally, it can currently call non-public methods, which doesn't seem right.
Both of these cases should be changed: only accepting public static method calls.
ABIDecoder is typically used to call static methods. It can also be used to call instance methods but it isn't typically used that way and we would probably want to handle the instance method case differently (potentially associated with some kind of explicit interface advertised to other callers and long-lived).
Additionally, it can currently call non-public methods, which doesn't seem right.
Both of these cases should be changed: only accepting public static method calls.