there's supposed to be what 2 years between ESB and ROTJ? even looking at Shadows of the Empire, there's still a lot of unaccounted time. And Luke has obviously progressed tremendously between ESB and Jabba's Palace, Let alone the duel with Vader.
Originally posted by Fishy
When he went to Vader in ESB, Yoda said he wasn't ready. Luke said he was and promised to come back, he then promptly went away to come back in ROTJ when Yoda died, he did not spend the time in between training with Yoda, he even says he's going back to his old friend to fulfill that promise he made when he left in the first place.
There are 2 ways to view that scene. One like you said, he hadn't been back since he left during ESB. the second that he did return, but left again to help with han's rescue.