The purpose of auto-boxing and un-boxing is to make assignment between primitives and their wrappers simpler. In most cases this works, however there are many edge cases where auto-boxing/un-boxing is not performed.
This feature was added to Java 5, however many methods were not altered to reflect this change. It is possible these methods were left for backward compatibly or it was not considered how these methods might have behaved if auto-boxing were part of the language when the method was written.