[NSObject performSelector:] の類と NSInvocation が Swift からは一切呼び出せません。使おうとすると怒られます。 objc/runtime.hは試していませんが、同様に直接 Swift 経由では呼び出せず間にObjective-Cをかます必要があるのではないかと思われます。
@optionalなprotocolが限定的にしか使用できない
具体的には @objc属性を付けないと使えません。しかしこのような後方互換性のためだけに存在する属性をいつまでも Apple がサポートするかは疑問が残るということと、 もう一つ以下の様な問題があります。
@objc属性のついたSwiftの型はただのObjective-Cクラスになる
こういう問題があるのであまり使いたいとは思えません。 ちなみに Cocoa のクラスはほぼすべて @objc属性が付いているためそれを継承して使うことになるアプリでは、 事実上 Swift 本来の能力を出せないと思っていますが、実際のところはわかっていない。