Yes you can at the ruins of alf
You are most likely going to be mad when you find out... According to the Pokemon Strategy Guide, Smeargle can be found in the Ruins of Alph (in the Johto region, NOT Kanto). It is extremely hard to be found here... If you are too lazy AND you have Pokemon Platinum, Pearl, etc., you can import Smeargle from there. It is MUCH easier to be found there.
In the Ruins of Alph and the Safari Zone.
In HeartGold and SoulSilver Versions, Smeargle can be found outside the Ruins of Alph (level 20-22) or at the Safari Zone (Plains zone during Morning or Day).
No in emerald you can.
You catch Smeargle ;)
You can find Smeargle in route 212 using the Poke Radar.
Sorry but that is only for the Japanese version of heartgold/soulsilver
when you capture smaergle, there isn't really something important for you to do. you could train it, but there isn't much to do after u catch smeargle.
you can catch sudowoodo and smeargle
You can't catch Rotom in heartgold.
Yes, in the Ruins of Alph(uncommon)
you cant catch him in heartgold you can only get him in soulsilver