Let’s start with a simple question: How does a person become a program member?
Of course there’s the flow step “Change Program Status”. “Not in Program” removes a person from a program, and any other status adds them to the program. But how about automatic association to a program?
Sent Email from a program? | No |
Opened, clicked an email in a program? | No |
Submitted form in a program? | No* |
Submitted form on a landing page in a program? | Yes |
Uploaded into list in a program? | No, but you can set an acquisition program in that process |
Imported into the program? | Yes, because you must set a member status |
Added via API? | No |
*Probably the most interesting one is the fact that a form submission only adds membership automatically, if that form is on an LP in that program. An embedded form – even if it lives in that program – does not add to program and thus does not create the Acquisition Program – and consequently also not the Acquisition Date.
So if you care about Acquisition Program and Acquisition Date you need to set it through a Smart Campaign flow step. Please note that “Acquisition Program” can be overridden by that flow step, which – in most or all cases – you don’t want. So do it like this:

Don’t worry about the Acquisition Date. It’s set automatically once the first association with a program occurs.

(It’s a little odd that this setting of the Acquisition Date does not appear in the Activity History).
So what do you need the Acquisition Program association for? Mainly for reporting. You want your Program Performance Report to show “New Names”, and that is equivalent to that program being the Acquisition Program.