Buenas.
La opción b) es falsa. No es que el código "deba" ser reutilizable.
Se recomienda tener en cuenta el reuso como estrategia al construir software, tanto pensar en si vale la pena hacer componentes que se puedan reutilizar y reutilizar componentes ya hechos. Pero hay un pienso antes, no es que se deba hacer todo reutilizable. Te puede pasar que hagas un software para probar una idea o una brecha de mercado (en gral llamado prueba de concepto) y ahí en general no pensas en que vas a hacer componentes para reutilizarlos después. Porque en las pruebas de concepto la ventaja competitiva hace que construyas lo más rápido posible y en general funciona como un prototipo descartable.
Espero haber aclarado.
Saludos,
Sebastián