When you deploy a package containing a SharePoint solution to an environment in which you've previously deployed the package, you notice that the Action column for the packaged items (SmartObject, forms, and views) is Create New Version. This status shows even though there are no changes between the source and the target. In this scenario, the expected action is Update Existing.
The refactoring required to deploy the packaged items always defaults to Create New Version, which is also the case for non-SharePoint items.
All items in a package are seen as a solution, and all items in the solution are treated the same. If you include non-SharePoint items in a package where SharePoint components exist, these items are handled the same way as the SharePoint items and are refactored as part of the same solution.
The way items are identified use information from the target site, list, and library. This means that the items are essentially never the same, and the Package and Deployment tool always prefers to create a new version, even if you deploy the same package to the same environment.
Since many items in a SharePoint solution are dependant on each other, it is recommended that you deploy a package using the default option, in this case Create New Version. This ensures that the refactoring takes place across the entire solution during deployment and your solution works post-deployment.
When you deploy a package that contains SharePoint items, never try to deploy the solution without including the SmartObjects and underlying service objects.