The short and probably the best answer is basically no :) You are probably better off to stick with using countryId for the join.
The long answer is as follows...
I'm not sure that it's exactly what you want, but for the Destination, you don't need to actually add a Country object as a field inside the Destination.
You can write a _virtual attribute_ for the Desination which returns a Country.
In that attribute, you could perhaps access the other IndexedCollection for Countries and retrieve the Country object whose countryId is in the Destination object.
There are downsides to this approach though, namely that if you add an index on that virtual Country attribute used with the indexedCollection<Destination>, then that index won't be kept up to date with changes in the IndexedCollection<Country>.