This phenomenon consistently happened to my college bus system, but on an even worse scale. The main bus line did a loop around campus, which took ~20 min to complete and buses scheduled every 5 minutes. In reality, you got a caravan of 4 busses arriving every 20 minutes, with the first one totally full and the last practically empty.
Tesla owner here. If you have the Tesla app installed on your phone, you can "share" addresses from map apps to it and it will auto-sync them to your car. So the workflow is open calendar on your phone, click on location for appointment, open with Tesla app. It's not quite as seamless as android auto, but much better than having to type everything in manually.
This is mostly true, but sometimes the cost of evaluating the condition itself is non-trivial. For example, if a and b are complex objects, even something as trivial as `if (a.equals(b)) ...` might take a relatively long time if the compiler/runtime can't prove a and b won't be modified between calls. In the worst case, a and b only differ in the last field checked by the equality method, and contain giant collections of some sort that must be iterated recursively to check equality.