Thank you, your testing was helpful. I think the problem is K2's Moshine compatibility code, which is why the two of them create the problem together.
K2 runs its Moshine compatibility code during data-updates. It adds every module category (except two specifically excluded ones) to the allowed_module_categories of a bunch of different entities, as long as they don't have allowed_module_categories defined. This includes the Voidcraft runes. Voidcraft's own code to update categories also runs in data-updates but K2's runs first, so by then allowed_module_categories is already defined. Moshine itself doesn't create a problem because its code runs during data-final-fixes, not data-updates. Now that I know what is going on, I can add code to Voidcraft's data-final-fixes to reverse this.
Anyway, the short answer is, this will be fixed in Voidcraft 2.5.