I have item 1:
And item 2:
These should be the same item, as they have all the same tags. However, since the name object is stored in a string, the equivalency between the name objects is determined to be unequal, and so these two items will not stack with each other, even though they are functionally identical.
This is not only a problem when trying to stack items obtained from 2 different location (e.g. a function and a loot table), it is also a problem when checking the name of an item in the possession of an entity, as you now must know the entire name object (The order of which is undefined) instead of just the name, as was the case pre-1.13.