Hi Jeff,
The short answer is that you are not forced to create a separate profile for internal vs. external phones. However, FreeSWITCH gives you this freedom whereas Asterisk does not. You *could* try to cram everything into port 5060, but there's no compelling reason to do so. A lot of VoIPers are accustomed to using 5060 and only 5060, come what may. FreeSWITCHers generally view that as a limitation, not a feature.
By having multiple SIP profiles - quite literally multiple SIP UAs - you have more freedom and flexibility to handle goofy scenarios like dealing with broken NAT devices. You can put all your broken stuff on a different profile and not have to worry that setting a particular option to fix one device will break another device.
Oh, and keep in mind that "just because Asterisk can do it" doesn't mean that Asterisk does it correctly. There are a lot of devices out there that "work" but only because they all choose to be synchronized in their goofiness. Reams have been written about how FS does not pander to broken devices so I won't belabor the point here. Just know this: FS is relatively strict in adhering to specs and standards, so if something works with Asterisk (or whatever VoIP software) but not with FS then most likely it's a matter of figuring out how to tell FS to emulate the brokenness for the sake of interoperability.