In addition, all silicon have bugs that you don't always want your competitors to know about by seeing the workarounds in SW. They will use that against you when trying to replace your chip in a product.
- Customer support and liability
With limited customer support resources, you don't want to debug your product for a customer without knowing exactly what code is running. This applies both for the end product and the silicon vendor. As an example - what happens if a modified driver bricks the product?