yeah performance was the reason why i do the calculation in on_research_finished and only apply the value in on_tick, so it is lightweight. back then i think the on_nth_tick function did not exist yet otherwise i would have used that.
still i think if you only apply it during on_research_finished, the mod won't function correctly unless the player during map creation sets all evolution factors to 0 manually. i wanted a install and forget kind of solution that does not rely on assumptions, so i went for this design.
but i'm happy you could customize the code to your liking - your version is definitely a better fit for players with lots of optional technologies, and the excluding military can make sense from a gameplay perspective.