Inconsistencies of types in NSString format initialisers

I've noticed a small inconsistency in the types used in the NSString format initialisers. The type of the format argument is NSString in 2 of the initialisers and String in the other 2:

NSString format inits that take NSString:

public convenience init(format: NSString, _ args: CVarArg...)
public convenience init(format: NSString, locale: Locale?, _ args: CVarArg...)

NSString format inits that take String:

public convenience init(format: String, arguments argList: CVaListPointer)    
public convenience init(format: String, locale: Any?, arguments argList: CVaListPointer)

I'm wondering if there's a reason for this. The can think of one explanation but it doesn't hold up: The inits that use NSString are intended to ease working with legacy bridged methods that return NSString and the String methods are for working with a more straightforward Swift codebase. This explanation falls down because the type of second parameter of the String methods, CVaListPointer, is useful than CVarArg....

Is there any explanation for these type choices?

/cc @Philippe_Hausler

Is this in swift-corelibs-foundation or the Darwin overlay?