While it would be nice it is also complicated.

Certianly, the way RPGs are done now is lacking. Mostly the NPCs are waiting around somewhere for the player to come up and have a stilted conversation using a conversation tree.

Making NPC behavior more intelligent requires much more complitcated AI and more processor power. Conversation trees are horrible, and I think the reason they are popular is because all programmers learn the tree data structure early in their careers and this is something they can use it for. Need based AI would be preferable to standing in one spot waiting for the player, but again, much more work and difficult to get right. Body languge, as you have suggested, is a terrific idea, but again more overhead.

The more intelligent and non-linear the game becomes, the more difficult it becomes to control. Since it is so much work to program the various events in the game, you want to try to ensure that the player won't miss them, or that they advance too quickly and miss essential parts of the story. By at least setting way-points and events that need to be encountered in order to move forward you can achieve this.