--- Quote Start ---
Although the SOPC builder and QSYS give each slave an address, the address is a property of the master interface. There is nothing technically stopping different masters using different addresses for the same slave! (It would be confusing though - which may be why it isn't allowed).
--- Quote End ---
Actually, it is allowed, its just not very obvious in the Qsys GUI.
Each master can have a different address map. The address map you see in the 'System Contents' page of the GUI is the 'default' address map where all masters decode the slaves with same address map. If you click on the 'Address Map' tab, then you can edit the addresses of the slaves on a per-master basis. When you do this, the addresses of slaves with different master addresses changes on the 'System Contents' page to 'mixed'.
If you want to minimize the BAR decode size, you need to move the slave addresses accessed via a specific BAR to lowest possible addresses.
In my opinion, this is a poor feature of the Qsys PCIe bridge. Most PCIe bridges have inbound translation windows, which allow you to move a BAR over any address in the local address map. The bridges have a (small) BAR for control registers (lets call it BAR0), and then other user-programmable BARs (eg., BAR1). The BAR1 size can be configured at power-on, and then the BAR can be moved by setting the base address in the control registers in BAR0.
Cheers,
Dave