I thought about it for a day or two. It seemed like a really good idea until I really started digging into it.
I ran into a couple of issues.
1) JSON-LD (using the Schema.org schemas) is a solution designed around SEO (and Google, for the most part). The format of your JSON-LD snippets will always be chasing Google's preferred structure for communicating any given context. This means that you are aiming at a moving target (slowly moving, but still...). Also, when you try to layer the additional information required for analytics and other mar-tech onto the ordained schemas, you step into the unknown and are left wondering if the additional attributes you've added will help or hinder in your SEO placement.
2) JSON-LD (using the Schema.org schemas) is a solution that has only been thought through for the non-transaction parts of websites. Since it is built for SEO, things like carts, wishlists, user registrations, user interactions aren't really spelled out for you on Schema.org. Again, I quickly found myself in uncharted territory. If I were defining a data layer for a fully authenticated experience (i.e. online banking), I think Schema.org JSON-LD would be a very odd fit.
Depending on the site you have and your needs for analytics, you might find a better fit than I did. I just wanted to share my experience, FWIW.