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.
I think I have heard it suggested that "esperantano" would be a better word for "esperanto speaker" than "esperantisto".
This is a profession. You don't have to like it, but people do it for living. There are even schools for that.
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.
it comes from the German verb "Stehlen" which means "steal". Remember that in German that S is pronounced pretty close to the Esperanto Ŝ.