This has little to do with xterm. You could do the same thing with two shells without invoking xterm at all. For that matter, you could do it with one shell (see below).
Each process has a current working directory. This isn't tracked by name, but as a pointer (more or less) to the directory itself. (I'm not sure how it's represented internally; it may be something like the major and minor device numbers and the inode number for the directory.)
The shell running in your first xterm has test_01 as its current directory. That directory is then renamed (by another process) from test_01 to test_01_old -- but it's still the same directory, and the shell process still has it as its current directory.
The kernel doesn't remember the name of the current directory, but your shell does. It uses this information when you run the built-in pwd command. The shell under your first xterm didn't notice that directory was renamed, so when you type pwd it prints the cached path.
But /bin/pwd is an external command, and it doesn't have access to the shell's cached information. It works by starting from the current directory (whose name it doesn't immediately know), looking at its .. entry, and traversing up the directory hierarchy until it gets to the root (i.e., the directory whose .. entry points to itself); it then prints the path elements in reverse order delimited by / characters.
For example, I just did the following on my system (Ubuntu 12.04, bash 4.2.24):
$ pwd ; /bin/pwd
/home/kst
/home/kst
$ mkdir test_01
$ cd test_01
$ pwd ; /bin/pwd
/home/kst/test_01
/home/kst/test_01
$ mv /home/kst/test_01 /home/kst/test_01_old
$ pwd ; /bin/pwd
/home/kst/test_01
/home/kst/test_01_old
$ cd $(/bin/pwd)
$ pwd ; /bin/pwd
/home/kst/test_01_old
/home/kst/test_01_old
$
As you can see, pwd and /bin/pwd are consistent until I rename the current directory; then the shell's built-in pwd prints what it remembers the current directory to be. But when I do cd $(/bin/pwd), the two are in synch again.
xterm-related. (Anxtermcan't tell if it is running a shell ornethackand has no idea what directory the shell it runs considers thecwd.) Btw, whilepwdmight be the same,ls -ld /proc/self/cwdof both Xterms probably differs. – sr_ Aug 10 '12 at 8:32cd .will "sanitize" the situation in the first xterm. After thispwdwill show the new path. – janos Aug 10 '12 at 9:17