1. Про epub всё просто только на словах.
Спецификация позволяет кроме HTML встраивать ещё шрифты, изображения, видео и аудио, и не накладывает серьёзных ограничений на HTML и CSS, допускает подгрузку содержимого не только из контейнера и много чего ещё. Это больше напоминает CHM, чем обычную книгу.
2. Вы пишете про enca но как будто бы не постарались вникнуть в суть. Во-первых enca хороша для автоматического определения кодировки. В XML кодировка указана явно и с определением проблем нет. Проблема немного в другом.
В C++ метод QDomDocument->SetContent нормально отрабатывает если контент передан как QByteArray, в питоне что-то идёт не так и разбор идёт как utf-8, независимо от того что указано в документе и как этот документ передан. В итоге это приводит как минимум к некорректному разбору, а часто вообще к ошибке.
3. Использование интерпретируемого языка требует наличия интерпретатора на пользовательской машине, биндингов для используемых библиотек и самих библиотек. В случае компилируемого языка можно в крайнем случае слинковать всё статически и не думать как windows-пользователю установить python, qt, pyside и проч. На этом ещё раз прошу дискуссию по выбор языка и библиотек закончить.