Good points Neil,
I think it also has something to do with the Java API docs as well. Java programmers get used to looking for classes that they are going to do something with. In the Oracle Java API, interfaces are not all grouped together as they are in the ArcObjects Java docs. So if I was wanting to work with a JPanel, I would look at JPanel in the API, not the Interfaces ImageObserver or MenuContainer, etc., because I wouldn't know about those before looking at JPanel for the first time.
It is definitely a different approach between .NET and Java and you get used to it in either programming environment over time.
.NET ArcObjects API lists "functionality" in the Interfaces, while Java ArcOjects API lists "functionality" in the concrete class. By "lists" I simply mean that the docs present that information to developer.