There's nothing inherent about DOS that prevents code reuse. For example, network stacks and audio drivers were commonly reused, and also graphics APIs like Glide and BGI, not to mention game engines. Either way, writing a soundblaster driver seems like peanuts compared to the work I imagine goes into the rendering pipeline of a modern AAA game.
It does scale in the sense that matters to a game publisher; you build it once and then you sell a million copies. The bigger the expected number of sales, the more time you can spend reinventing a more refined, custom-tailored wheel, and the simpler the wheel the tools inspire, the less time you have to spend on it. Amiga and old DOS games were probably just at just the right point where extensive reuse didn't pay off. Hardware wasn't very complex and for games like Doom it had to be a first class consideration for the product to perform well enough.
Not sure if this applies to the Amiga, but one of the huge drawbacks to DOS was that you wrote your own video and sound drivers. It wasn't abstracted away, so you could get better performance, but it was a lot of repeated work, and it doesn't scale.