Hmmm, I had made all the roads but recently decided to do them all again

. I'm learning Blender as I go. I haven't got anything as nice as r@m to show. However...
View attachment 1664
Here is one such junction. Green line (marvel at my MS Paint skills) is the short layout. Orange line is the longer layout.
View attachment 1665
Above in Blender. I haven't finished (clearly) but you can see that I went with the S bend of the short layout. 1m segments, array then curve modifier along a bezier. Now though, you guys have got me thinking that I should start the junctions again.
Here's another one.
View attachment 1666
WW
I'd work racing route agnostically.
Make a nice control mesh for the Z data which is just smooth and Z correct, but isn't necessarily correct in XY.
Then have an XY correct quad mesh that 'flows' nicely and takes in all the surrounding junctions and so on. That then conforms or gets projected down easily onto the Z mesh.
You can then tweak the Z mesh easily and get smooth results if needed, and then re-drop the denser (1m quad ish) XY mesh onto it easily.
Build the roads first, decals etc etc, and then add your race course over the top.
The main reason I say this is that if you change the race route, it just works. You can shift barriers, fences, kerbs etc, and everything underneath can be left alone.
Also the street course has crowns/cambers based on the flow of the real roads flows, not the flow of the race course you're setting.
So having a poly structure running in the directions of the actual road is ideal, rather than running in the direction of a loft flow for your race route.
This is a 1m grid city track area I've been making (Leeds Loops) and as you can see all the polygons flow where needed, and curves are fanned in where needed.
The Z data is on a different control mesh (that controls terrain flows, camber and crown)
This mesh is never touched once it's created. It just gets dropped down onto the Z control mesh to 'tweak' the Z position.
This is just my approach which I find works the best. It's a lot of work but it gives really solid, smooth, realistic and controllable results.