Siemens experience, not AB, but I imagine that it carries over. For us, there tend to be two breakpoints, one based on complexity and one based on features. They tend to go hand in hand. Safety relays are great if the only thing you need to do is cut power to the whole system.
1) If you have a complex safety system, safety PLCs come in very handy. Complex meaning multiple safety functions, interlocking zones, or devices that need to retain power in their safe state.
Say you have a welding cell making automotive parts, multiple robots surrounded by a fence, with a couple conveyors going through. Obviously, if you Estop, everything shuts down. HOWEVER, there are other desired safety modes as well. Each robot needs to run in teach mode, but they often need to coordinate to be sure that only one can Teach at a time. If the door is open, then the robots need to be either safely limited to a low speed, or stopped, but the conveyors may still need to run. Alternately, if a light curtain by the conveyor is broken, then the conveyor may need to stop, but the robots can still keep going.
Hypothetically, all of that could potentially be done via safety relays, but it gets complicated and costly quite quickly.
2) The feature that causes you to go to safety PLCs is networked safety devices. In just about every system I work on, the drives, IO, robots, and other PLCs are all networked together already. There is minimal extra work for many devices to do Profisafe safety communication over Profinet, if the IO data is already going over PN. No physical IO points required, no extra wiring, just over the cable.
In Siemens land, ordering the safety CPU instead of the regular one is only a 10-20% cost increase per CPU. It's pretty easy to balance that HW cost with reduced wiring labor. Because of this, it is pretty rare for me to see a not-failsafe Siemens CPU. I've heard that because of the safety partner, the costs are a bit higher on the AB side. The complexity tradeoff might be a little higher there.