There are still a lot of core changes done with each release. It'll just to hard to release new patch for each bug. And how should it look like? Just update modified DLLs? Consider the following scenario:
1. We have two bugs (bug1 and bug2)
2. Bug1 is fixed. Changes are done in file1 (located in DLL1) and file2 (DLL2).
3. Bug2 is fixed. Changes are done in file2 (DLL2) and file3 (DLL3).
4. A store owner want to get a patch for bug2.
5. So he download the updated DLLs (file2 and file3 are modified).
6. But have a look at bug1 fix. It also modified file2. Hence we should also get a new DLL where file1 was located.
It would be much easier to use Mercurial for store owners (or their developers), get the latest version
here, then merge the changes automatically (using Mercurial merge functionality) or manually (if heavily customization was done).
Think about people who make some customization (core and design). Each autoupgrade will delete their changes