Old post but this issue still exists and here is the reason why and how to resolve it. 

Divi has two functions responsible for this issue. 

`et_requeue_child_theme_styles()` and `et_core_replace_enqueued_style()`

`et_requeue_child_theme_styles()` fetches a list of all registered styles in child theme directories
`et_core_replace_enqueued_style()` deregisters, dequeues and then enqueues these styles itself. 

The 'logic' behind this is to ensure that all Divi Theme styles are loaded before any Child Theme styles are loaded. It's pretty poor coding if you ask me because it doesn't consider if they've been enqueued or not. It's a very blunt approach. 

Divi also implements this with a very very high priority so it's unlikely that most users would happen to simply try enqueueing their styles with a higher priority. 

Here's Divi's enqueue action: `add_action( 'wp_enqueue_scripts', 'et_requeue_child_theme_styles', 99999999 );`

So to work around it you need to enqueue your styles with a priority higher than 99999999. Thats pretty excessive... 

eg:
```php
/**
 * Enqueue scripts and styles for services post type
 *
 * @return void
 */
function dsl_services_enqueue_scripts() {

    wp_register_style( 'services-css', get_stylesheet_directory_uri() . '/css/services-styles.css', array(), '1.00', 'all' );
    if ( is_single()  && 'service' == get_post_type() ) {
        wp_enqueue_style('services-css');
    } 
}
add_action( 'wp_enqueue_scripts', 'dsl_services_enqueue_scripts', 999999999 );
```