Best practice for ICT test point locations
There are no rules for placement of testpoints because the main point is to check the value of a component or at least its presence. The EMS requires testpoints so it can check that it put correct components in place. If you don't put testpoint, EMS can't check the PCB assembly, so any defect would be your responsability as you didn't provide any means to check the assembly.
The EMS is not a PCB designer and usually don't know anything about the PCB's function. Thus it only provides mechanical guidance regarding testpoints.
The location and pad design is up to the PCB designer. Most of the time testpoints are present on low speed signals, so location and size doesn't matter that much : a small stub  on an enable signal is not a problem. Same for an I2C signal with a testpoint on the trace, yeah there will be an impedance change but at 400kHz it shouldn't be an issue.
Issues arised when you have critical signals or when you need precise mesurement, then location and size of the test point is something to look for and sometime accept that you won't put testpoints and maybe choose another way.
Usually you try to put your testpoints in via holes so it doesn't involve specific testpoint pad, you just need to check the via pad size and hole diameter with the EMS so it can be used as a testpoint. Then for testpoints pads, the more critical the signal, the shorter the stub.
Finally, on advanced components you should be able to test your traces through Boundary Scan and related technologies.