My 'dead' rail insert works 100% reliably with my locos because a loco with several wheels and pick-ups is bound to apply voltage/current to the 'dead' insert.
Rolling stock with power pick-up for lighting also works because there are usually two axles equipped for power pick-up so when one axle passes over the 'dead' insert the power is still at that wheel through the internal wiring of the rolling stock. In this situation the power is depending on the other wheel having good contact with the main rail, so if the rolling stock passes over 'dead frogs' without flickering then it would be reliable.
In theory metal wheels, but non-powered, will trigger the circuit by bridging the gap between the powered and the 'dead' rail. On my bench they did trigger but they have to be moving slowly. I've not tested this thoroughly but after a quick test I would say that metal wheels on their own are not reliable.
For myself I wasn't concerned about detecting every axle, I only wanted to detect a train.
Once I've detected a train it triggers a 555 timer circuit which then counts down for a preset time until it resets. Whilst the timer is activated, it ignores further triggers from the 'dead' rail insert from powered rolling stock.
I've now installed a prototype circuit in the garden and it works 100% reliably. I am hoping to test the circuit using an optoisolator instead of the relay.