i'd say the opposite. i don't really understand why everybody dislikes karl XII.
he was crowned king at the age of 14 and only two years later all neighbouring countries (denmark, saxony-poland and russia) declared war, thinking it would be an easy match against this child king. but he conquered all of them. and the most famous battle, the battle of narva, made him famous all over europe as the young military genius who conquered a russian army three times as big. though later on, while conquering in poland, russia attacked again and that is when karl XII made his first great mistake. he marched with 44000 men towards moscow (a popular mistake).
after that the setbacks never ended and yes, sweden's time as superpower ended during his reign. but to blame him only for it is a little too simple i'd say. sweden's golden age was almost completely a long time of war. in the long run sweden could never afford all these wars. sweden was too short of both money and population. sooner or later the aggressive wars would end and the defensive wars would take over. unfortunately karl XII's reigning period were filled with them. when he died in battle at the age of 36 he had more or less been out at war his whole life (when he returned to sweden in 1714 after fighting down on the continent he hadn't been home in sweden for about 16 years).
i guess what made him so popular before was the simple life he lived (without the luxuries most king couldn't be without), his military achievements and the way he gave it all for "greater glory" (not really the swedish way today...). he is a legend, or at least he was. today it is kind of politically incorrect to admire a war king, and unfortunately the neonazis have grabbed him as their hero. but apart from all that i don't think he should be so unpopular today and more than that i think it's wrong to only blame hime for the "fall of the empire".
i definitely agree with you though, that he wasn't the best king. the ones you named were great, along with many others. this reply is waaay too long...