Currently the MultiSelect allows a custom tag (one that does not correspond to items in its dataSource) to be displayed as selected. For this to work the MultiSelect must have autoBind disabled and the dataValueField option must be set. Once the widget is bound to data it behaves inconsistently, depending on whether there are other pre-selected items and what their index in the dataSource is.
The widget is loaded with data, but the custom tag remains. This leads to the following unexpected behavior: after step 1. deselect "Product1". The item is deselected, the "custom" tag is removed from the input area but the "Product1" tag remains. The behavior is different, if initially "custom" and "Product2" are pre-selected.
Once the widget is bound any custom tags should be removed. The MultiSelect should display only tags for items that are in its dataSource. For a new item to be displayed as selected, it must be added to the dataSource.