I can confirm this problem. Here are some details for Thomas to fix this bug:
I think the problem is, that the "skilled" talent is handled twice. First in talents.c (ModifyByTalent(), lines 561-577) and a second time in init.c (InitializeGame(), lines 1664-1681).
Each routine calls ModifySkillBy() with different values for the parameter "no_magic", which leads to an "Illegal skill advancement" error, when the this function is called from init.c (no_magic = TRUE).