Not intuitively, but it's generally good to be wary of optimizing compilers in such cases. I don't know what the Go compiler outputs, but a straight forward translation to C didn't compile to a constant time operation with (recent) gcc -O3. For all I know might with some other compiler. This didn't result in any branches in gcc, though:
static uint64_t
add64(uint64_t x, uint64_t y, uint64_t *carry)
{
uint64_t yc, sum;
yc = y + *carry;
sum = x + yc;
*carry = (sum < x || yc < y);
return sum;
}
But again, some other compiler on some other platform may have another idea of what to output.
Anyway I agree to be careful. On platforms that have to use the fallback implementations, if they aren't optimized to constant time operations, this will lose one of the important properties of Poly1305.