CLSID, по крайней мере, не должен меняться. Естественно, программа может сделать много глупостей, нарушающих правила. Но: поскольку CLSID - это то, как класс загружается, измененный CLSID будет означать, что программа USING класса также должна будет использовать измененный CLSID.
Су, ваше предположение правильно - если одна и та же программа в одной и той же версии установлена на двух компьютерах, можно с уверенностью предположить, что CLSID не меняется.
Это даже должно происходить между версиями .... но если библиотека Foo 1.0 используется только одной программой, программист может избежать неприятностей с измененным CLSID. Это не должно измениться, хотя.