A question about performance with Form API and Ajax callbacks
I build such a dynamic form recently and asked me the same question. I did go with the Drupal-way and only used the Form API with zero lines of custom JavaScript. In general you have to weigh the pros and cons of server-side vs. client-side processing. For me these are:

Form API approach


(+) No custom JavaScript/jQuery code neccessary.
(+) You have the full power of the Form API including validation and storing of data inside $form_state (This was one of the main reasons for me since I was using this inside a multi-step form).
(+) Logic stays on the server. You probably need some server-side functions or do not want to expose your logic to everyone.
(-) It will be slower then a JS approach (depends on your server's performance).


JavaScript approach


(+) Fast. Since you do all processing on the client, you can update values instantly.
(+) May be easier to implement. It can be more straight-forward since you don't need any deep Form API knowledge.
(-) You have to fiddle around with jQuery selectors to somehow pass data to Drupal (maybe using hidden fields). This is not always nice and things can break if the HTML structure changes.


Normally I would prefer a JavaScript approach since the user experience can be much better. But in my recent case I really liked it to not have to write any custom JS code and let Drupal handle all the AJAX stuff. I was really impressed by the capabilities of the Form API.