Thats what I'd expect. Libc handles -ERESTARTSYS, not the kernel.
> alarm(2) = 0
> open("/dev/ttyS1", O_RDWR|O_NOCTTY) = -1 ERESTARTSYS (errno 512)
This blocks for carrier
> --- SIGALRM (Alarm clock) ---
[2 seconds are up]
> alarm(0) = 0
You turn the alarm off
> sigaction(SIGALRM, {SIG_DFL}, {SIG_DFL}) = 0
and reset the handler
> alarm(0) = 0
and turn it off again
> write(2, "ldial failed: Can\'t open this l"..., 36ldial failed: Can't open
> this
> line.
> ) = 36
> _exit(-1) = ?
That looks OK