Negativo, he probado como tu dices y obtengo el mismo resultado, hasta donde tengo entendido hacer la asignación no debería alterar el resultado pero igual lo probé sin asignación y sigue dando el mismo problema tal cual.
Utilizando el método When, he ahorrado código aunque el problema tampoco se solvento con este
Código PHP:
Ver originalpublic function detalle_evento($inventario_id, $vendedor = false){
return Inventario::where('id', $inventario_id)->when($vendedor, function ($query, $vendedor){
$query->with(['Ventas' => function($query) use($vendedor){
$query->where('vendedor', $vendedor);
}]);
}, function ($query){
$query->with('Ventas');
})->first();
}