As for each update [being] essentially a complete replacement of the previous version (which you originally questioned), I'll stick with my guess that it's to avoid the multitudinous glitch possibilities that a line by line update would present.
Whether partial updates are less subject to error or not depends on the design and implementation of the code. If object-oriented design and coding have been rigorously adhered to, along with an end to end test suite designed to break the code and not just prove that it works, a module by module update
should be less likely to induce new errors and permit much faster turn around times.