So, what I learned from another grammar place is that the suffix -ist is used for professions, based on a noun. In this case, ŝtelo is a theft or a robbery, but is thief really a profession? Is it better to say that the -ist suffix is used for somebody who practice/do something (often)?
An esperantisto is one who speaks esperanto, but that doesn't mean it's their job, right? And if someone is an artisto, that doesn't guarantee they do it for a living.
I agree with you, it seems to me -isto works just the same as -ist does in English: it describes someone who does something with a certain amount of skill. Riding a bike one time doesn't make you a cyclist, but if you ride it everyday, then you are.
Not necessarily. According to Lernu.net, "-ist-" means the name of someone who busies himself with the thing described by the root used as prefix to "ist".
So, "matematikisto" (matematik + ist + o) is a mathematician because that's what we call someone who does maths everyday, i.e. who busies himself with mathematics.
Furthermore, "ŝtelisto" (ŝtel + ist + o) is a thief because that's what we call people who busy themselves with thievery.
Usually a profession (as in English dentist, journalist, allergist). But also persons with a set of beliefs or activities (as in English Marxist, Baptist, polygamist, activist). See sim590's response.
"-anto" is someone who is doing something at the moment (leganto = a reader, but probably not a professional reader).
"-ulo" is someone with the property of the word (bonulo = a good person, but probably not a professional do-gooder).