For discussion purposes, I am only going to talk about setup analysis, but hold analysis is pretty similar. Note that I/O timing generally only has 2 values from your .sdc files, the setup relationship and the external max delay. The setup relationship is based on your clock relationships(so multiple assignments are used), but the end result is there is only one number for setup relationship. The external delay is pulled directly from your set_input/output_max_delay constraint.
So let's take an 8ns clock running a source-synchronous DDR interface. The data window is 4ns. There are 3 basic ways to describe the clocks. One is with a phase-shift of 90 degrees, so that there is a 2ns setup and -2ns hold relationship. If the FPGA is phase-shifting the clock, then this should always be the relationship. If the FPGA is not phase-shifting the clock, then the external device is. (The way source-synchronous interfaces work is that someone shifts the clock edge into the middle of the data window. If you don't do this, then Quartus will try to add delays to meet timing, which vary over PVT, and the interface performance will suffer).
The second method is to say the interfaces are edge-aligned, and that we're transferring data to the next edge. That would be a 4ns setup relationship. The third method is to not have the clocks edge-aligned but have a multicycle to state same edge-transfer, or a 0ns setup relationship. Now let's look at our external delays. For the one with a clock shift, let's say the external delays are 0.8ns. So the setup - external delay is 1.2ns.
Now the one with a next edge transfer, where the setup relationship is 4ns. In this case the external delay would be something like 2.8ns. The setup - external delay is 4 -2.8, which still results in a 1.2ns for the FPGA to work with. The third option might have an external delay of -1.2ns. So the 0ns - (-1.2) = 1.2ns. Once again the same relationship.
This is what can happen with two variables being used, you can switch them both two different values and end up with the same result.
Why would anyone do that? It's because external devices spec themselves in different ways. For example, if the FPGA is transmitting, one receiver might say that it will center align the clock, but that it can accept up to 1.2ns of skew(i.e. it's adding another 0.8ns on top of it). Another receiver might never say it's phase-shifting the clock(hence an edge-aligned relationship), but it would have a Tsu of 2.8ns. A third device might not say it's phase-shifting the clock, but it's Tsu is -1.2(I've seen this before).
But let's look at another example. Let's say the external device is not phase-shifting the clock but it says its Tsu is 0.8ns. If you look at the waveforms and understand how source-synchronous interfaces work, then it's up to the transmitting FPGA to phase-shift the clock and make the relationship go from 4ns to 2ns. (I admit, this is hard to picture the "window" when I only talk about setup. I'm certainly being brief). I'm working on a document that I will post next week for these interfaces, and will put a link on here. I wanted to add a lot of examples to real devices(TI, Maxim, ADI, etc.) but that will probably have to wait for round 2.
(Note that there is another case where nobody is phase-shifting the clock and the external delays are not "shifted". This is basically the case where someone should shift the clock, but just can't. The only cases I've seen this is when the FPGA is the receiver, getting edge-aligned clock/data, but the FPGA is either out of PLLs, or the clock is a strobe and hence a PLL won't lock. In these cases the same-edge transfer is generally best, as the design will need to close timing through delays, but the clock tree is generally longer than the data path, so it has a natural advantage).
Finally, if you have a specific circumstance, please put it down. As you can see, it's really hard to talk in generalities on a forum. Trainings are also difficult because they need to cover all cases, while most users are only thinking of 1 and wondering why it's so difficult.