Patches are released for three reasons: bug fixes, new hardware support (sometimes also requires new packages) and new features. As releases stay out in the field longer, more bugs are discovered. Many bugs are fixed during the development cycle and are "fixed in the next release". However, for many customers an upgrade is out of the question, so more and more patches get released.
In the early Solaris days, patches were often combined into "jumbo" patches. This reduced the number of patches somewhat, but made maintenance more difficult as it would require re-cutting a patch consisting of 50 modules when you fix just one bug in one module. Patches are now only merged if there is a two-way dependency.