According to my teacher, the former means that "I will most definitely call you", while the latter means that "I'll maybe call you, but it's not likely"; something you would say after a bad date. But somehow I'm still skeptical. Is my teacher right? Is it true that when you use the совершенный вид (in the future tense), you are guaranteeing to do something?
First of all, disclaimer: If your teacher is a native Russian, he/she probably is as good in Russian as most of us here. The only benefit here is in teamwork: numerous people can see an answer and vote on it. :-) Also, the situation in the question is re-told here by you. Maybe, your teacher said it in a slightly different context. Having said that let's proceed to my answer.
I do not agree with Lev Levitsky answer's first lines that the teacher is wrong. (Note, that Lev also puts disclaimer: "if the teacher really says so").
When you see the two phrases bare as you put them, the first visible big difference in meaning is that
позвоню means single action and
буду звонить usually means repetitive action.
But if we put it in the context like this:
Позвоню тебе в 5 часов
Буду звонить тебе в 5 часов
the second difference comes apparent. "
Позвоню" means a completed action. Something like: I will try and in the end you will have been called (I transformed the phrase to passive to make my point more apparent). "
Буду звонить" means just that that I will dial the number and if the telephone network does not connect me, so be it: I was calling you but did not get through.
This is only a hint in meaning. Some people will say "
позвоню" and really mean just "
буду звонить". But if you are a recipient of this message (somebody will call you), "
позвоню" gives you a little bit more confidence that you will receive the call.
If the teacher really says so, they're wrong. The two have rather close meaning (the latter might imply repetitive action, though, as in:
Я буду звонить тебе по пятницам, or
...пока не дозвонюсь).
Both imply the same level of "probability" or "enthusiasm" or whatnot.
And yes, you probably mean
позову (both translate to "call", but
звать means "to call", as in "The dinner's ready". And it's
совершенный вид does not guarantee anything in Russian any more than it does in English. It simply indicates a completed action or perhaps a more specifically stated intent.
"Буду звонить" does NOT mean "I'll maybe call you, but it's not likely."
Bottomline: It's very simple. Both ways (позвоню AND буду звонить) are correct. Just as in English, you can say: I will call you (позвоню). OR: I will be calling you (буду тебе звонить).
So, whatever the difference the above makes to you in English (in terms of the tone or mood) translates directly and straightforwardly the same way into Russian.
On a side note: Teaching Russian to a non-native speaker can be pretty challenging! Sometimes I catch myself re-thinking and double doubting myself about the simplest things.
If you say after a bad date, ''Буду тебе звонить,'' especially in a non-enthusiastic tone, then yes, it can be interpreted as your teacher described, but generally the difference between ''позвоню тебе'' and ''буду звонить тебе'' is not about the degree of definiteness of the future action.
''Позвоню тебе'' refers to a single future action - a call. In essence, the speaker promises that he will have completed a call or will have tried to reach you by phone. This can be seen as result-oriented thinking, where the goal is to make a call.
''Буду звонить тебе'' refers to a future process and has the process-oriented flavour. In essence, the speaker promises that he will be engaged in a process of calling you, and this can mean, for example, that he intends to repeatedly try to reach you by phone or to have a series of phone conversations with you. Another possible, albeit not frequent, meaning is that the speaker wants to emphasise that he will be busy calling you and, as a result, won't be able to do a certain thing.
The same applies to other verbs, too. For example, ''буду делать'' is a promise to get engaged in a process of doing something, while ''сделаю'' is a promise to successfully accomplish doing something and deliver the required result. The difference is not in the degree of firmness of the promise, but in the nature of the promise.