I am pretty sure that both "swim teacher" and "swimming teacher" are valid, but are there any rules that would make one preferable to the other?
As a British English speaker, "swimming teacher" is what I would naturally say and "swim teacher" sounds more American to me. However I have just been debating whether "swim" or "swimming" sounds better with my girlfriend (who is also a native speaker of British English), and she would say "swim teacher" more naturally. She argues that "swimming teacher" reads more like "someone who teaches while swimming".
So, is there any real difference between the two?