Can't we emulate the USB hardware in software
yes, within limits. Low speed rather than full speed, and not actually meeting USB specifications. Suitable for hobby projects and experimental engineering gear, but not for a product (like Arduino) that you want to sell at Radio Shack and other retail outlets.
It's been done. There's a thread here: http://www.roboticsindia.com/showthread.php/2922-ARP-Affordable-USB-Arduino-Freeduino-based-Boards
Apparently in India, ATmega8 chips were available very cheap, and FTDI chips were nearly unavailable. So these guys implemented an ATmega8-based Arduino using a second ATmega8 as the USB/Serial converter. I gather that it worked OK, but ultimately failed because the low prices of the ATmega8 were more of a temporary glitch in the marketplace than a real savings. (since then, prices of the 328P have dropped considerably, and the mega8 prices ... not.) At least in the US.