What is the best way to automatically add a miscellaneous charge or something like that?

Sometimes we have a promotion where if you buy one item, you automatically get another one free. Is there a way to do this with base AX?

Say if I buy item 1001($400), I should get item 1002 ($50) free. Either automatically added to the sales order, or if it sees both items, then add a misc charge of -$50 or something like that.

Yes the Supplementary Items functionality is made for the same.

Look into AR → setup → Supplementary Items.