例えば、
/hoge/1/
にいる状態で、
python hoge.py
os.chdir('/hoge/2/');
としても、
shellに戻ると/hoge/1/にいるままだと思いますが、
/hoge/2/にいる状態にしたいのです。
親プロセスとなるプログラム(この場合は、Python を呼び出したシェルプログラム)側に仕掛けを用意しないと無理だと思います。
シェル側の仕掛けを用意したやり方は、下記のページにありました。
教えて!Ziddyちゃん - Linuxのchdir(カレントディレクトリが移動できない)
Python ではなく、C で書かれていますが、
という流れになります。
上記の例だと、親プロセスがシェルじゃなかったら、といった問題もありますので、もう少し工夫が必要だとは思いますが、何れにしても、呼び出す側にも仕掛けが必要なので、汎用的な手法とは言い難いです。
そもそも、カレントディレクトリはプロセス毎に保持しているものなので、もし、Python スクリプト中で変更したカレントディレクトリが、呼び出し元のシェルのカレントディレクトリに反映されるとなると、他のプロセスが保持しているデータを書き換える事ができる、という事を意味します。これが可能だとすれば、前述のように前もって双方に仕掛けを用意するか、カーネル自体に特別な仕掛けを作るしかないと思います。