Our DS1 did this sort of thing, he's 3.5 now. I think we sorted it, though, with a couple of tricks.
Firstly, unnecessary trips to his room, particularly in the middle of the night, cost him a toy from his bed. He just loses it for the night, but whatever's in his bed is whatever he loves most right now, so he won't tolerate this. If he calls me back for something when I've put him down, I'll stand on the ladder (to his room) and say "If I come up, I'll take away X, do you want me to come up?". It generally turns out that he doens't.
And secondly, if I do go back (which I'll do, if it's right when he's being put down, and he's asking for a kiss or something else simple), I say "ok, if I come give you a kiss, what will you do then?". He has to say "I'll go to sleep". Then I'll come.
Oh, and thirdly, throughout the bedtime routine, I do a lot of "we read this, then we talk about that, then you go to sleep". "ok, now we talk about that, then you go to sleep". So he knows what's coming, when.