It is wildly easier to get a mouse to tell the operating system first off that it is a mouse, than it is for the operating system to analyze the mouse and make that determination for itself.
Imagine scaling that up to GPUs! The device needs to describe itself because IT is unique.
In fact the mouse doesn't tell the operating system that it's a mouse. The operating system reads that off as part of the hardware USB handshake what the device is. USB is an example of a system done largely correctly as compared to all the other processors embedded into a SoC.
Imagine scaling that up to GPUs! The device needs to describe itself because IT is unique.