You can clone with
$ perl -MSDLx::App -E 'SDLx::App->new(icon=>"icon.png",eoq=>1)->run'
==> no icon
note that i saw that SDLx::App calls SDL::Video::load_BMP, so i tried to convert the png to a bmp file ==> no luck either.
also, i've read in SDL::Video for wm_set_icon "This function must be called before the first call to SDL::Video::set_video_mode. Note that this means SDL::Image cannot be used."
==> doesn't it mean that when SDLx::App is created, it's already too late?
This issue has been addressed by my Blaizer branch of SDL. Check that everything I put in the documentation works, if you could.