Не претендую на правдивость, но насколько мне известно дела обстоят так.
Python хранит объекты в пулах, а пулы в аренах, это что бы избежать размазывания данных по памяти, когда python ищет куда запихнуть объект он смотрит на наличие незаполненных арен, и если их нет, то запрашивает ее у системы. В случае если у нас есть свободные арены - выбирает выбирает самую заполненную арену и пишет туда наш объект (опять же что бы данные не размазывать по памяти, а хранить их максимально близко). Когда таким образом заполняется арена, он берет следующую, но прикол в том, что когда мы удаляем большой объект из памяти (а в данном случае mp3 файл может занять у нас сразу всю арену) то python не возвращает эту арену системе, и она остается у программы дальше, отсюда возможно у вас и происходит такое
P.S: вот если интересно видео о работе памяти в python, довольно подробно это объясняется
тик