The dictionary says:
do prep 1. for, 2. to, unto
gu prep 1. to (a place or point in time), 2. till, until, unto, 3. for
So they both can mean 'to' and 'for' but clearly are not interchangeable (or are they?) so there is some nuance. For example we would say:
Tha ma a' dol don bhùth (I am going to the shop)
Tha e cairteal gu trì (It is a quarter to three)
If gu means 'to a place' (see above) and also 'unto' (though so does do), why do we not say Tha me a' dol gun bhùth (or is that permissable)?
The best I can figure it out is that gu means something more like 'up to' as in 'up to now' 'up to here'. It would seem that gu has more to do with time and do has more to do with space (it's a shame I can't ask Stephen Hawking about it ). Which would explain why we say gu bràth (forever == until judgement day) and not do bràth perhaps?
Is that right?
PS - I realise that neither is used in the infinitive of a verb because, unlike Beurla the infinitive is just one word (like many/most languages e.g. French etc).