I was reading about the PCIe stadard
A lot of the PCIe standard - pretty much everything outside of the physical layer - refers to abstract units that implement a specification. These units are ideas with names that make it easy to talk about them. It's hard to talk about complex devices if there's no name/term for them. So the standard had to come up with those names.
These abstract functional units can be realized (implemented) as discrete ICs, but I highly doubt there ever was a collection of such function-specific ICs that would let you implement PCIe, other than perhaps in early development of the standard, although I doubt it.
A PCIe PHY ICs were made and offered on the market - mainly to connect existing PHY-less FPGAs to the PCIe bus. One example was NXP's PX1011B. I imagine they were short-lived products. As soon as new FPGAs integrated the PHYs, the discrete PHY became unnecessary.
There is a relatively high fixed cost to an ASIC, so if you're paying for it, you will want to put as much functionality on it as you can. Separating functions between ASICs almost always costs more, but can reduce project risk. The PCIe development effort was, I imagine, well funded and well staffed. So the project risk was already lower than if it was a small business doing all the work with little resources.
I have read about the latest CPUs having the RC inside them - but would that be true for SOC like zynq xilinx or arria altera?
Yes. A root complex is not a lot of logic, but requires some firmware or state machinery behind it to manage it. FPGA SoCs are pretty much a perfect fit to implement a RC even if they don't provide one as hard IP on the die.
I have have seen some boards with those chips that use PCIe communication but there was no external PHY chip or external RC chip, is it usualy implemented on FPGA of a SOC?
PCIe PHY is almost always a part of the chip, otherwise it'd be an extra burden to deal with. FPGAs and SoCs with PCIe support have PHYs built-in.
A RC can be implemented using the FPGA/SoC resources so there's no need to have a chip for it. The whole point of an FPGA is that it lets you combine the logic that would ordinarily require lots of function-specific ICs and the interconnect between them.
The line between an FPGA and a SoC is very blurry. Usually FPGAs are called SoCs if they have "CPU-specific" hard IP like DDR controllers, hard CPU cores, etc. But just about any FPGA can implement a CPU and peripherals, i.e. it can be functionally an SoC even if it's not marketed as a SoC.
Hard IP are fixed-function parts of the FPGA that are not generic programmable logic fabric but perform a specific function instead. Say an FPGA may have some hard CPU cores, but the same FPGA could not have them and instead have the CPU cores implemented in the FPGA fabric - usually at a much higher power usage and lower speed, though. Programmable logic is a tradeoff after all: you gain flexibility, but lose the performance possible with dedicated logic.