K10 Во-первых потоконебезопасно. А во-вторых сложно и неудобно отслеживать состояние такой переменной, которая может изменяться из любого места программы. Больше вероятность труднообнаруживаемых ошибок.
Конечно, это больше относится к языкам высокого уровня чем к ассемблеру, в котором меньше возможностей управления видимостью переменных.
K10 Приводят к необходимости самомодификации пикода или созданию пересекающегося пикода, что требует доступ к странице с этим кодом на запись, а это часто является проблемой.