Setting #states property for a field_collection item added with the add_more button
I could solve it myself...

The solution is to alter the field_collection widget. In the point 3 of my question, I have made a mistake in the code. Here is a generic code to handle this behavior for changing the visibility of a text field according to the value of a select field:

function your_module_field_widget_form_alter(&amp;$element, FormStateInterface $form_state, $context) {
  $fn = $context['items']-&gt;getFieldDefinition()
    -&gt;getName();
  if ($fn == 'your_field_collection')  {
    // Get the delta
    $delta = $element['#delta'];
    $element['your_fc_text_field']['widget'][0]['value']['#states'] = array(
      'visible' =&gt; array(
        "select[data-drupal-selector=\"edit-your-field-collection-$delta-your-fc-text-field\"]" =&gt; array(
          'value' =&gt; "your_value_when_visible"
        )
      )
    );
  }
}


Note 1: I used "data-drupal-selector" because this was the only jquery selector which was working for the "select" (select seems more tricky then other fields)

Note 2: Adding ":" before "select" like ":select[data..." is breaking the feature. I don't know why!

Note 3: take care of the $delta in the data-drupal-selector

Note 4: Use "Inspect element" of your browser to get the correct value of your "data-drupal-selector"