Is there any way to change a password using a PAKE-like algorithm, without the server getting the plaintext of either the old or new password?
If you use an augmented PAKE (such as AuCPace or Opaque), the server never gets a copy of the password in the first place. Hence, to update the password, you would reregister with the new password, but the reregistration process wouldn't involve sending the password.
If you use a balanced PAKE (such as Spake-2), well, the server does need the password.
Augmented PAKEs are designed to be used in a client-server scenario (where the client always initiates the negotiation, and we don't want the server to have the password in the clear); balanced PAkES are designed for peer-to-peer scenarios (where either side may want to initiate it, and so both sides need the password)