I've created a custom content type plugin for ctools (configures and renders panels pane).
There's a lot of dynamic (ajax) stuff on the content type edit form. There is a button called
"Add filter" that adds new form elements via ajax callback that are later saved into pane's config.
There is also some validation before data is saved, it checks for content presence.
When I try to add new filter via "Add filter" button while the previous one is not filled in with correct values, everything works as expected - empty values cause validation to fail and a message is shown. When I try to submit the whole form using "Finish" button while having some empty values inside filters it still gives me the validation error, however "Finish" button goes away. Also, message is shown not above the failed element, but at the top of the form.