"any" is not necessary in this case, as the protocol doesn't have self or associated type requirement.
Should be fine (with or without any in this case).
Note that as written in your obj-c the method would be "creditMoney(_ money: Double)" in swift, to make it "credit(money: Double)" you'd need to change the prototype slightly in obj-c header:
Not yet, but the using a bare protocol name as an existential is planned to be removed at some point (Swift 6 IIRC), so it's better to get into the habit of not using it.
You can still extend an imported ObjC protocol in Swift to use Self in consuming position in extension methods, and you would not be able to use those methods on any types.
It's very tempting to go down the path of wanting to distinguish between protocols with Self or associated type requirements with ones that don't, but that path is exactly what has lead to so much confusion about existential types and why the semantics suddenly change as soon as you add such a requirement to an existing protocol.