I have tried it and it sadly did not work. The bug also included “Tick” function. If blueprint Tick node was not present in the Blueprint, C++ tick function was not being executed. After hours of digging, I have created a secondary Blueprint containing the same settings and everything is working as expected. So I can only assume it was the UPS that freaked out during one of the compiles and never recovered.
I would be still very much interested in the reasoning why would AddDynamic on Begin play help in this situation. I have seen it on forums here and there and I am very keen on using best practices.