I'd also like to hear ambient NPC chatter. It can be gibberish but when i pass a pair of NPCs "chatting" you hear nothing, only see sign language. Some are very animated but no sound is there.
One way to keep NPC movement somewhat random is to think of theirs waypoints like a railroad system. Some tracks split and some don't. Could have either a world wide random roll or NPC specific roll. (I prefer a world roll and the reasons why follow)
Billy bob the NPC has a main starting point. when he gets to for example, Uldah gates, theres 2 possible elsewhere and 1-5 locations in town he can go to. If the world roll is currently 5. he takes the path labeled to him as 5. If the world roll is a number not counted on his pathing info, he goes to a default path, that might put him in a tavern boozing for a few hours.
On an NPC's table you could have an old style affection rating. default would be if NPcs are passing eachother on a road, the default is a wave at X yalms. Emotes upgrade or downgrade per affection.
Since the NPCs won't always meet in the same places due to the world roll plus any variable the Devs place (would likely be good to have a shortlist of NPCs who have some RNG added to the world roll say of 500 NPCs, 30 have an added RNG roll to add some chaos to the world roll) there will often be variance in when and where they meet up. It would also make it easier for such tables since the developer would have:
1: Mappable pathways that many NPcs can use. WIth something akin to a Railroad map the Devs can easily use as a referance when added a new NPC, or adding path choices for already exsisting NPCs
2: with a world roll you will have a standard set of number chances. and any missing numbers will have a default pathing.
3: If the developers want certain NPCs to meet up they can set matching path numbers so they will "always meet" somewhere on the path.
4: by having a world roll, it would be easier to add numbers to the min-max of a world roll adding and subtracting the total amount of defaults and being able to add new paths as new areas/quests/ and possabilities open up.
5: And for certain cases, you can set +/- variesables on an NPC level, if you want to effect the world roll on a certain npc
6: One could also set triggers on certain NPCs so if Bob meets martha on a pathway, the trigger will then have one of them change pathway, thus bob can walk with martha.
This is the kinda of NPC movement scripting i've often pondered myself, i lack the programing skills to make the shell such a scripting language could use. However by not having RNGs on each NPC and placing it on a world(server) wide roll it seems to me it would make it much easier to manage.
By adding affection ratings between NPCs you also allow differing reactions to be observed. Maybe as you travel down a road you see Bob, and usually when you have seen bob, he ways to someone (maybe you if its feasable) maybe another NPC.
Well today Bob passes by Jack. Bob and Jack hate echother. As they cross paths the both shake fists at eachother, squabble for a second and continue on. A Players observations of Bob in general have been neetral or friendly, so to see that is surprising and interesting. and has the effect of drawing your attention because it is not the usual.
And thats just my thoughts on NPC travel, theres a ton of other subjects i've always had in mind. but my posts are too long as it is :)
All in all i'm a large fan of Abient movement. Sound clips and textures can only do so much. One way i often check how alive a world is in a game is by finding a likely spot, and sitting there, to see who or what comes by, what sounds are heard what happens near by, do birds show up, do NPcs walk by. Do 2 NPcs walk by having a conversation.
As much as i love group and teamwork in games, but when you walk through the gate of a large city, you want to see a city alive. Hardware limitations and all, you don't need large crowds, but if your standing somewhere taking in the sights for 10 minutes, i have some expectations of an NPC or 2 walking by, a kid running around. Some birds swooping down etc.