If I use the API to remotely create an email html/text body and it contains the %%first_name%% variable then submit the email via the API, will ExactTarget properly parse the variable and replace it with the actual value before sending?
Yes. as long as you create a profile attribute with the same name (first_name) or a Data Extension sendable field (if sending to DE) with the same name (first_name)
If using triggered sends, same thing. In order for the email validate there needs to be profile attribute or a triggered send DE named first_name for email to validate.
At send time, the value will then be substituted for that susbcriber.