The loop seems stuck to a single (now deleted) post

I got it! For any one in the future with the same problem:

ACF’s get_field_object() apparently makes a WP_Query and doesn’t clean up after so, since I called it for every post, I always got the same post after a certain point in the elaboration. I found the solution in this question.

Some code for clarity:

<?php while ( $query->have_posts() ) : $query->the_post();?>
 <h1><?php the_title();?></h1>
 //Some more prints
 <?php $field = get_field_object('my_field');
   $value = intval($field["value"]);
   $label = $field["choices"][$value];
   echo $label;
  //From this point on every custom field or other data came from the same post
 ?>

There are probably better ways to fix this, but it is simple and it works fine:

<?php while ( $query->have_posts() ) : $query->the_post();?>
 <h1><?php the_title();?></h1>
 //Some more prints
 <?php 
   $backup = $post; //Backing up the current post
   $field = get_field_object('my_field');
   $value = intval($field["value"]);
   $label = $field["choices"][$value];
   echo $label;
   $post = $backup; //Restoring the post
 ?>