Ну не сделали потому, что надо вызывать ExAllocatePool. Они конечно могли бы написать макрос, но откуда им знать, например Paged или NonPaged пул нужен. Ну а если передавать его как параметр то слишком много чести, можно самому такой мини макрос сделать. К тому же в макросе обычно не проверяют возвращаемое значение. А inline функции для таких незначительных целей писать..... Ну это уже каждый сам себе. Если уж совсем фантазировать, то вдруг вызывающий захочет выделить под строку память из lookaside list, конечно на практике такое мало вероятно, но всё пишется так, чтобы это можно было поддерживать в следующих версиях винды. А вдруг в следующей версии появится еще какая функция для выделения памяти и как-тогда. Кто знает какой функцией решит воспользоваться разработчик.
мелкая inline функция решит вопрос.
Строковые функции все только на PASSIVE_LEVEL работают, а значит могли бы вполне paged pool пользовать, как наименее ценный ресурс. ИМХО, программисту на PASSIVE_LEVEL все равно какой пул пользовать, а значит MS могла бы поудобнее че-то соорудить, поддерживаю идею.