Hello CStaff,
You may be using the {{dc:post:title id="{{dc:acf:field key='review_product'}}"}} dynamic content incorrectly. Take note that you have:
Slider Container - Looper Provider Custom `review_slides`
  Slide - Looper Consumer 
    Group - Looper Provider Custom `reviews_for_slide`
      Review - Looper Consumer
As for the reviews for slides function;
// 2) Return exactly 2 reviews for a given slide number
add_filter('cs_looper_custom_reviews_for_slide', function ($items, $args) {
  $cpt  = 'review';         // <-- your CPT slug
  $per  = 2;
  $page = isset($args['page']) ? max(1, (int) $args['page']) : 1;
  $off  = ($page - 1) * $per;
  return get_posts([
    'post_type'           => $cpt,
    'posts_per_page'      => $per,
    'offset'              => $off,
    'orderby'             => 'date',
    'order'               => 'DESC',
    'post_status'         => 'publish',
    'ignore_sticky_posts' => true,
  ]);
}, 10, 2);
This will already return post object which means that you do not need to use the {{dc:post:title id="{{dc:acf:field key='review_product'}}"}}. You only need this if you want to display specific post data WITHOUT using a looper. In your use case, the review_product field SHOULD return an ID because that is what is needed by the  {{dc:post:title id="123"}} dynamic content.
#1] Dynamic Content supports ACF Post Object fields. The POST ID return format is needed depending on which dynamic content parameter you used it.
#2] Yes, there is. When the ACF field returns a Post Object, you will have to use a Looper Provider Dynamic Content {{dc:acf:field key='review_product'}}. Therefore, your element structure will now becomes:
Slider Container - Looper Provider Custom `review_slides`
  Slide - Looper Consumer 
    Group - Looper Provider Custom `reviews_for_slide`
      Review - Looper Consumer
        DIV - Looper Provider Dynamic Content `{{dc:acf:field key='review_product'}}`
          DIV - Looper Consumer
            Headline - {{dc:post:title}}
            Image - {{dc:post:thumbnail}}
#3] I do not think there is a need to improve here because the {{dc:post:title id="123"}} is pretty much straightforward that it needs the ID value. And this {{dc:acf:field key='field_name'}} dynamic content will always return whatever the return format is set for the field.
Hope this makes sense.