Once it stabilized, PulseAudio is one of the best things that ever happened to Linux audio. Yes, it was buggy in the beginning and some distros made it the default a bit prematurely. Also, it depends on good ALSA drivers that fully implements the API. For a long time, PulseAudio was plagued by buggy and partially implemented ALSA drivers that lied about timings and other things and had only stubs for many functions. As PulseAudio exposed many driver bugs, it was often unfairly blamed by nontechnical people. Also, many distributions (Ubuntu was particularly bad) failed to make the default configuration of the applications/games/emulators/etc in their package repositories work with PulseAudio out of the box, creating an even worse user experience that PulseAudio was blamed for.
Nowadays, pretty much all common audio cards have good enough ALSA drivers and distributions have fixed their default configurations so this is no longer a problem and PulseAudio is working flawlessly.