And what would you do if you wanted to call:

self.do_something(positional, keyword=keyword, keyword1=somethingelse,



I think this is still pretty clear:

self.do_something(positional, *, keyword, keyword1=somethingelse, keyword2) 

but if you don't like that you can easily add a restriction that no explicit keywords are allowed after *, so:

self.do_something(positional, keyword1=somethingelse, *, keyword2, keyword)