Wow, I just found this thread. It's definitely an untypical topic on any 3-rail forum.
Realistic prototypical operation definitely requires that the operation of track, switches, locomotives, couplers, etc. be as close to flawless as possible. Derailments, jerky operation, cars that won't couple without bashing, etc. greatly detract from the experience. Unfortunately, and largely due to the lack of standards, we 3-railers have challenges in each of these areas.
In my case, track and switches are very reliable thanks to Gargraves track, Ross switches (with some nearly identical Curtis switches), and Tortiose, NJI/Tenshodo twin coil or Caboose Industries ground throws for switch control. Components that I determined to be only semi-reliable, like Gargraves switches and Z-stuff switch motors are not used.
Locomotives and control systems are the area where the scale guys in N, HO, and 2-rail O-scale have a huge advantage over us. Their locomotives (at least in the last 20-25 years) are geared for realistic operating speeds and have good slow speed performance. DCC has become the standard for electronics in those locomotives, providing command control, adjustable speed control, and a huge variety in sounds. Locomotives from different manufacturers with different motors and gear ratios can be adjusted (by programming the electronic DCC decoders in them) to run together. In 3-rail, there are at least 3 competing electronic command control systems: TMCC/Legacy, MTH DCS, and Lionchief (base, plus, 2.0, etc.). There is really no way to get a TMCC locomotive, a DCS locomotive and a Legacy locomotive to run together with the same speed profile.
When the time came to choose a control system for my layout (in the late 1990's), the choice was between TMCC (new to the market and with an upgrade for conventional locomotives available from Digital Dynamics) and DCS (not yet on the market, but being demonstrated widely). At that time, MTH stated that there would be no upgrades possible for conventional locomotives. The only way to get DCS was to buy new locomotives with the system installed. Since I wanted a single system with simple locomotive addressing, I chose to go with TMCC. Some of my locomotives started as conventional, then had Digital Dynamics boards (32 speed steps and no cruise control), then got TrainAmerical Studios EOB (128 speed steps and cruise control with lots of momentum built in), and now have Electric Railroad Cruise Commanders (100 speed steps and cruise control without momentum). The EOB momentum made switching moves very difficult.
I much prefer to not use cruise control in locomotives. Unfortunately, with the toy train gear ratios used in most 3-rail product, the cruise feature is needed to achieve slow operation. The exception is most 3rd Rail locomotives. Because of their belt-drive transmissions, the gear ratio can be changed by changing the pulleys that drive the belt. My best running out of the box locomotives are the 3rd Rail I1s decapods, made around 1995. These have a conventional gearbox with a 31:1 gear ratio. The motor makes 31 revolutions to make the drivers turn in a single circle. Combined with a huge Pittman 9000-series motor with max RPM around 5000, these locomotives are very smooth runners with a great speed range. By changing pulleys, I've been able to match the speeds of my 3rd Rail N1s 2-10-2's and an M1a 4-8-2 to the decapods. Pusher operations always involve some mix of these locomotive types. I've also re-motored some Williams and Weaver 2-8-0's and 2-8-2's with 24 volt Pittman or Globe motors to slow them down. These generally see coal train service, and their absolute top speed is about 38 scale mph. I had an article in OGR describing how all of this was done. Digital subscribers can read all about it.
One solution for couplers is to change the standard 3-rail couplers to O-scale Kadees. Guys like Norm Charbonneau and Dave C have done this successfully. I wanted to use the standard couplers, and again unfortunately, standard is not standard in 3-rail. Take a look at the couplers and you can see differences between manufacturers in the dimensions. After much trial and error, I have standardized on Atlas electrocouplers (these get added to all locomotives, regardless of manufacturer) and Atlas, MTH, and Lionel couplers with thumbtack armatures. These can be improved by installing new armature springs as I discuss in the GLA #11 video.
I must disagree with Rich in his description of traffic flow for prototypical operation. Having both producing and consuming industries on the same layout is a toy train or a 1970's-1980's scale layout thing. In order to have realistic operation, in my opinion the cars from online industries need to go to the rest of the world beyond the modeled layout, and cars coming to online industries need to come from the rest of the world. A railroad makes money by handling shipments over hundreds of miles. Short hauls from one industry to another that are only a few miles apart don't make money, and would likely be handled by trucks in the real world.
The layouts where I operate, including mine, have staging tracks that represent the rest of the world. These tracks are out of the view of operators, and are typically underneath or behind scenery, or in a separate room. A train leaves staging, enters the visible layout, delivers and/or picks up cars, and runs to staging. I have 4 staging yards that represent Harrisburg, Pittsburgh, Bedford, PA and Cumberland, MD.
On small layouts, the rest of the world can be represented by one or more interchange tracks. Cars from another railroad get placed on the interchange track, the trains on the layout pick up these cars and deliver them to industries, and cars from the industries get spotted on the interchange track, where the other railroad picks them up. The "other railroad" can be a shelf or storage box, and movements for the interchange track are made before an operating session.
Thanks to all of the hard core operators who read this reply! 