The Wire class is using lower level twi function from core_esp8266_si2c.c, which has the pins variables as global static :
static unsigned char twi_sda, twi_scl;
So, it only remember the last value given to the last twi_init() call.
To fix that and having the possibilties to have multiple Wire object, it requires first to remove the static or create a new function twi_setpins(), and then in every Wire methods add code to set those pins number using the values stored in the Write object.
Probably a PR should be submitted for having this fixed forever...