Icons are missing in the portal dialog because apparently Shell keeps track of Wayland app ID to .desktop file mapping internally and returns the .desktop file name to the portal for it to get the icon. Which is a bit too much effort for me to replicate for now. 😅
Fixed transparency support. Turns out the BGRA format should've been in a separate pod, rather than as a choice in the same pod. Should've looked at Mutter code sooner as usual..