Arduino controlled model trains and layout

You're right!
You can use any motor-driver, you only need to change the sketch. I just find it more convenient to use a ready-made module, especially since the L298 has two channels, since my system was designed to control many players simultaneously.
As for the DCC control, then on a system is impossible making even such a simple function as automatic stopping a train before a red signal. Or I'm wrong?