(1) закомменти строки с assign и раскомменти с присваиванием, сравни поведение. с assign не работает инкремент и удаление. с присваиванием - поведение ожидаемое.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший