I'm not at Apple anymore, but I'll chime in some answers:
- XCFrameworks require Xcode 11, which establishes a baseline on how old a Swift version clients can use.
- You can definitely use them with Objective-C.
- One advantage of XCFrameworks over bare frameworks is that they allow bundling together multiple versions of your built framework (usually simulator and device for one platform, but could include more). You don't have to use them, though.
- The more important thing about distributing a Swift framework is to use the "Build Libraries for Distribution" build setting, which also requires Xcode 11. Slava wrote more about this in a recent Swift.org blog post.
- Note that you can still mix language modes in a project in Xcode 11: your framework can be written using "Swift 5 mode" and clients still on "Swift 4 mode" can use it.