I think the culprit is this one:
C0/4A30: 20F446 JSR $46F4
I can confirm this function call is the problem. What this function does is check to see if you're engaging an NPC for an event/dialogue. The way to pull it off with the kid in Tzen is to be pushing left to climb up the stairs, then press A with good timing; if he's on your left, you'll engage him, but the camera will keep moving. The reason it only works on stairs seems to be because you can't engage NPCs on flat ground unless they are in your movement path, so the camera stops moving, whereas with the kid you're not moving straight left, you're moving up and left.
After further testing, I found that what makes this possible is the fact that you're allowed to move before the dialogue/event check. If you're not pressing left at the time of engagement, the camera doesn't move; however, if you are, your player will actually take a step past the kid, causing the camera to move, and then the camera will continue moving.
If the function call to C0/46F4 is removed, then the only way to talk to an NPC on stairs is to stop moving. If we still want the ability to talk while moving, we'll have to add a "talking to an NPC" check before the movement. Personally, I'd rather remove it, or rather, create a new function identical to C0/4A03 but with the call to C0/46F4 removed.