It may not be part of the explicit spec but surely the default action of a connection in the connection pool is that when its returned to the pool for re-use its available in the "correct" state.
In the world of grids, being able to re-use a connection is essential.
Your argument seems to be that its up to us to ensure applications are developed correctly and the state of connection is always left in a good state. However, the argument from the developers here is that people make mistakes and MS-SQL doesn't have these issues so why not use that ?
I agree, I don't understand why sp_reset_connection would be a source of problems ? MS-SQL manages to do it without any issues.