Limit Migrate explode process plugin to 1 takes whole string
Just found the solution after rereading the PHP explode docs:


  If limit is set and positive, the returned array will contain a
  maximum of limit elements with the last element containing the rest of
  string.


So setting the limit to 1 has the effect that the returned array element contains the rest of the string, which in my case is the whole string. So setting the limit to 2 fixes the problem and gives back the first part of the string:

field_taxonomy_places:
    -
      plugin: explode
      source: places
      limit: 2
      delimiter: '|'
    -
      plugin: entity_generate