А если загрузить шрифт в память, и открывать в памяти.

Пример загружаем с помощью SDL_RWFromFile. И первым параметром в TTF_OpenFontRW, передаём созданный указатель на память.

Шрифт загружается один раз, а открывается с нужным размером много раз.