I don't understand what you're suggesting. To put the work into the ALSA userland, you would make an additional daemon on top of it and put features there, which is exactly what Pulseaudio and jackd are.
ALSA already comes (or at least did in the past) with an optional daemon for dmix and dsnoop. Putting as much of what jack and pulse do as possible into libasound (which already handles a lot IIRC), with the minimal amount necessary into a shared daemon, could have allowed all existing ALSA applications to work with the dynamic switching that is now handled by PulseAudio, or the low latency that is now handled by Jackd. ALSA already had a signal graph that could have been evolved into the independent signal graphs that PulseAudio and Jackd can now build.