I realize this is an old thread, but I noticed something and wanted to bring it back up. Also, I believe the functionality has changed, no matter how minute however there is a way to still make it work, which I've attached the VI for.
If you read the LabVIEW help on Dynamic Event Registration it seems that you are primarily supposed to be "Modifying" an event registration during run-time, not creating them. Because you have wired in a constant "Type" of the registration, you have never actually created an event registration, thus is can't modify it and send that modification back through the dynamic event terminals.
Thus, if you register with null events, rather than use a null event type specifier, you do not need to use a shift register. The shift register is allowing you to overwrite that event registration with an entirely different one, which the dynamic event terminal does not.
Again, this was definitely a change in functionality, but I believe it makes sense to be the intended functionality after reading the LabVIEW help.