If you take something and wrap it up, it becomes bigger. Do it again it becomes even bigger.
If you want the smallest possible executing programs you'll need to learn to write in binary which no one does.
If you want number 2 on the list you will have to go with assembly.
C for number 3.
Everything you can do with autoit can be done with c and assembly. When space is limited like on device driver and cell phones you need to worry more about optimization. After you learn c or assembly you will have the smallest and fastest code out there... Well that's if you have mastered writing small optimized code.
And if you want to argue over whats better speed or size i'd have to say neither. I'd go with functional code first. Does it get the job done?
I wouldn't worry about size. I think autoits aim is more of having something hobbyist can grasp and comprehend.
If it doesnt meet your requirements, then use something that will. If they isnt anything that does then you will need to create it.
Edit.
Btw count how many Msgbox your computer can store and tell me how huge it still sounds...
I got a small flashdrive beside me here that would hold 50,000 programs that size.