Pythonのヒッチハイカーガイドには、変数名を再利用するのが良いと書かれています。
foo = Spam()
bar = foo.eggs()
そして、私はそれに同意します。コードを読みやすくします。
変数が40MBのデータである場合はどうなりますか?それ自体をコピーして、合計で80 MBになりますか?
foo = buffer # 40 MB.
bar = foo.resize((50, 50)) # +40?
関数が実行されるときにメモリが解放されることは知っていますが、読みやすさのためだけに、アプリの1つの状態でメモリ使用量を2倍にするのは良い考えではないと思います。特別な場合のようですが、一方で、特別な場合は特別ではありませんね。