I'm reading PCIe specification, which mentions that the communication between the root/end points are through switches instead of buses as for PCI, and this structure improves throughput as the traffic doesn't have to share media with others. However, many pictures of th structure of PCIe switches show that the ports (upstream/downstream) are internally connected using buses. So, is this structure still a switch?
All PCIe connections are point-to-point. A PCIe switch has more than two ports, so its internal connections could be described as a bus.
However, this is not necessarily how it's actually implemented. When the switch receives, for example, a packet on its upstream port, it puts it into a buffer, and uses the destination in the packet header to determine on which downstream port to re-transmit the packet. This implies that all ports can be somehow connected to the same buffer, but not that there is an actual bus on which the packet is transmitted and to which all output ports listen.