I'm trying to answer.
The function that responsible to generate classes for menu items is _wp_menu_item_classes_by_context in the file wp-includes/nav-menu-template.php. You can dig there to see what classes it generate, so you can strip it out in nav_menu_css_class filter.
I found that every classes that automatically generated started with menu-item class. So, in the filter I loop the classes array until found that class.
This is my code:
function my_nav_menu_css_class($classes) {
$custom_classes = array();
foreach($classes as $class) {
if($class=='menu-item') return $custom_classes;
$custom_classes[] = $class;
}
}
add_filter('nav_menu_css_class', 'my_nav_menu_css_class');