Does caching has to be manually disabled for ajaxified forms? I switched on caching on my dev environment and it looks like ajaxified forms won't work* unless I specifically set max-age to them to 0. Is this normal? Or is this the case only when a form is displayed via lazy builder?

*they will work but submitting them will result in normal behavior where the form is submitted and the page is reloaded.
Not sure what you mean by "ajaxified". That sounds like a regular form is automatically "ajaxified".

Potentially this form is violating the principle that GET forms should not manipulate state. i.e. GET forms must be stateless. HTTP dictates this, but in Drupal 7 it was not respected. In Drupal 8 it is.

See https://www.drupal.org/node/2502785.