Это потому, что вы помещаете код с побочными эффектами в утверждение:
assert(qfile.open( QIODevice::ReadOnly | QIODevice::Text));
Этот код никогда не выполняется в режиме выпуска. Не только утверждения отключены, но и код внутри них не выполняется! Правило: никогда не помещайте ничего с побочными эффектами в assert (). Это первое, что нужно искать, когда что-то работает в режиме отладки, но не в режиме выпуска.
Если вы хотите утверждать, сделайте это так:
const bool opened = qfile.open( QIODevice::ReadOnly | QIODevice::Text);
assert( opened );