Surely your SQL Compare snapshots are only around 300k -> 1MB in size? All of ours are. A snapshot is just the schema and objects - no data.
If so then at the most you would be talking about 48GB not TBs???
Still a lot of disk space - but not Tera bytes?
Before using SQL Compare (I never want to go back....)
I used to use a query to get all the key areas (names, text, datatypes) of the baseline database schema and other objects from sysobjects, syscolumns, syscomments and perform a checksum on them. I would then do an aggregate checksum on the checksums and store that result. Then if I ever wanted to check that another database was the same as a particular baseline I would run the same query against that database and compare the resulting checksums - If they were the same, then I could be reasonably confident that the database objects where the same in both databases. (I've simplified my explanation a little - I generated a binary string from a combination of different checksums).
I only used this for a short time as I discovered SQL Compare not long after.
It has holes - a few false positives
However it did help.
If you combine it with a UDF in each database where you store your version number (alter it in every released upgrade script) this reduces the false positives.
I am starting to look at reusing this technique as like you I can't always use SQL Compare to check all our customer's DBs. I only want to check that the DB is at the version it claims to be at - and produce a warning if it isn't - so that we can then use SQL Compare to check the diff's.
I won't be managing 48,000 DB's however!!!!