It's not a problem if the storyboard has strong references to the controllers, but it is a problem if the controllers have mutual references. (It would be a problem if they had references to the storyboard, but that is not the case, unless you've added such references yourself.)
What I would suggest is that you (temporarily) change your window controller subclass to be private ("private class MyWindowController: NSWindowController …"), and see where errors show up in the rest of your code indicating that the window controller is referenced. If there are not a lot of them, you can check each of those sites (well, instance and global variables, since local variables don't cause retain cycles) and look for one that's causing the problem.
Both of your declarations are strong references. Optionality doesn't affect the kind of reference. A non-strong refefence would look like one of these:
weak var this: type? // weak references must be optional, or ...
unowned var this: type! // typically some kind of optional, since you typically can't set the initial non-nil value at compile time