Странно, что вы этого не поняли. Консоль-то прекрасно отображает юникод в принципе (наберите команду dir, увидите имена файлов на любых языках), но программа, скомпилированная ABC этого не делает — значит или не выполняет chcp 65001 (кстати попробуйте выполнить эту команду, а потом из той же консоли вызвать программу на ABC, может тогда сработает) или криво компилирует как-то. Хотя консоль в виндовс действительно реализована кривовато и с ней сложно работать правильно.
А с блокнотом — ну попробуйте открыть полученный файл той же ABC IDE, тогда или нормальным редактором вроде Notepad++. Проблема в том, что файл сформирован криво, скорее всего, а это опять же, баг компилятора PascalABC. Но чтобы убедиться точно, можете приложить файл к сообщению, я скачаю и проанализирую, что с ним не так.
Что вы понимаете под ЯП высокого уровня? Насколько я знаю, общепринятое определение включает в их число всё кроме ассемблера и автокодов. И в паскале указатели есть, а значит для работы с ними он предназначен.
В общем, я имею ввиду процедуру new, вызываемую для указателя. Естественно, что созданная таким образом переменная должна быть освобождена с помощью dispose.
В смысле?
http://pascalabc.net/downloads/pabcnethelp/index.htm?page=LangGuide/MemoryManagement/index_memory.html
Вообще-то можно почитать справку по языку. Там написано, цитирую:
Отметим, что динамическая память, выделяемая процедурой New и контролируемая указателями, не находится под управлением сборщика мусора, поэтому нуждается в явном освобождении вызовом процедуры Dispose.
Что я и говорил. В выделенную явно процедурой New сборщик мусора лезть не должен. Если на самом деле лезет, вопреки описанному в справке — это очень серьёзный дефект.
И правда, зачем? В нормальном паскале как-то без него обходятся, да и в C тоже.