Quincey and I had this same discussion months ago. The answer remains the unchanged: it is entirely possible to create a cycle of strong references with no optionals and no unsafe pointers involved. Here is an example:
class SuperFoo {}
class Bar { var foo = SuperFoo() }
class Foo : SuperFoo { var bar = Bar() }
let foo = Foo()
let bar = Bar()
foo.bar = bar
bar.foo = foo