Нет, в Swift нет односторонних шагов.
Для общей (лениво оцененной) последовательности, повторяющейся через каждое второе целое число, ваш
let sequence1 = sequence(first: Int32(2), next: { $0 + 2 })
является простым, понятным, и гибкое решение. Альтернативой является
let sequence1 = (Int32(1)...).lazy.map { $0 * 2 }
В вашем конкретном случае я бы просто использовал односторонний диапазон:
for (i, address) in zip(Int32(1)..., addresses) {
sqlite3_bind_int64(stmt, 2 * i, address.userID)
sqlite3_bind_int(stmt, 2 * i + 1, address.deviceID)
}