Port injection is called so because the fuel is injected into the intake port, upstream of the intake valves. Cleaners work well here because they clean the injector nozzle AND the intake valves, since the fuel/air/cleaner mixture "washes" over the intake valves as it is being sucked (or blown in a super-charged application) into the engine.
Direct injection is called so because fuel is injected directly into the cylinder. The issue with this, at least early on, has been that recirculated PCV moisture and oil vapor builds up on the intake valves, since no fuel washes over the valves to keep them clean; thusly, adding a cleaner would have no affect.
I honestly don't know how cleaners affect variable-valve-timing-type EGR systems, but I wouldn't bet on a cleaner maintaining my valves clean in a DI application.
IMO, use FI cleaner when ever. I don't see any benefit to waiting until just before an oil change, since most people don't have too much fuel dilution, let alone cylinder washoff. Also, would fuel injector cleaners cause faster degradation of the oil than regular fuel?