Я тебе расскажу зачем.
Потому что CSS - простое и лёгкое средство для изменения стиля. По сравнению с переопределением paintEvent и созданием собственного класса с отображением картинки.
Ах как легко "подпевать букварю"
А проблема возникла потому, что пытается CSS (клеем) пришить к платью рюкзак (в виде картинки из памяти).
Хмм... ну а что такого плохого человек хотел? Если у него картинки в памяти - их и подсунуть вполне логично. Однако такой (удобной) возможности не видно (во всяком случае я не нашел). И здесь нужно притормозить и смириться - а это не очень приятно. Вместо гордого "я сделал", "я тебе расскажу" придется осознать что "я всего лишь пользователь инструмента - и если он не позволяет..". Ну ничего, неприятно - зато полезно
А я поддержу navrocky.
Решение красивое, и по сути нет лишних операций не связанных с задачей. Почему вы считаете это чем-то монструозным? Вас пугает аббревиатура VFS? Всего то надо написать один класс.
Решение непринципиальное - VFS не отменяет загрузку файла и распаковку его в память, что, как правило, тяжелее чтения с диска. Поэтому не вижу смысла городить огород.