After some debugging, I found that wps_custom_nav_menu_items() receives as it's argument the entire nav menu, with applied classes, etc., but it gets the menu_id from the first menu item, and queries the database to get the original menu items. In this way it removes the added by _wp_menu_item_classes_by_context() classes.
http://wordpress.org/extend/plugins/wp-custom-menu-filter-plugin/