I would have reported this to your bug tracker, but I can't find it; the links on alsa-project.org are dead.
I've attached a small test program that demonstrates that calling snd_pcm_sw_params twice changes the value of the period_event flag in the sw_params struct, at least on pcm_hw devices.
In src/pcm/pcm_hw.c, in snd_pcm_hw_sw_params, there's an early `sw_set_period_event(params, 0)` call. Its effect is not undone if the function returns early. This is easiest to trigger by calling it with unchanged parameters, although there are other early-exit paths with the same problem.
I don't actually care about this bug, but since I noticed it while reading the alsa-lib source code trying to figure out what a period event is for, I thought I'd go ahead and report it.
Jamey