Doing it in the kernel does not cause any problems, as mentioned earlier. In addition, it's easier for the system administrator - one less thing to configure.
As for the resampling - FreeBSD uses linear interpolation by default; system administrator can easily change it to e.g. SINC interpolation using sysctl(8). Could you describe why would you want to complicate it further? Since, you know, adding useless features and configuration options just because you can is one of the reasons Linux never caught on the desktop, imho.
Also - note that I'm only talking about ALSA, not the "ALSA/PA" combination; you might want to compare the latter to "OSS/PA", though.