Voy a responder esto como se pregunta en el título:
Sí, un desarrollador debe conocer el funcionamiento interno del hardware. Cuánto depende del tipo de desarrollador y sus objetivos, el tiempo disponible y el interés personal. La prioridad debería, por supuesto, estar en las herramientas inmediatas, técnicas, etc., que emplean en su área. Esta opinión está en la línea de ser un individuo bien redondeado. Cuanto más sepa de las cosas fuera de su oficio, sin sacrificar su oficio, mejor.
Eso no significa que deba volverse loco con Cheese Whiz. Tenga una buena visión general del hardware, cómo interactúan las piezas, cómo los usan los sistemas operativos. En este sentido, sugiero leer un libro de conceptos de sistemas operativos para todos los desarrolladores.
¿Sé todo esto? Diablos no. He olvidado tanta información inútil sobre SCSI que ni siquiera es graciosa. Sin embargo, conocerlo fue una experiencia invaluable. También he olvidado muchos otros detalles relacionados con el hardware, pero recuerdo los conceptos importantes que aprendí de ese conocimiento.
Entonces, ciertamente sugiero aprender sobre el hardware. Hazlo a un ritmo razonable, dependiendo de tus necesidades. Aprenda tantos detalles como sea razonablemente posible, pero concéntrese en los conceptos.