Do not move the GpuSubtensor to the GPU when this do not make sence

Why is it necessary to add those new nodes, and not return `node.outputs[0]`? Is it just to disrupt another optimization? This should be explained in a comment.
Also, the infinite loop could be triggered if this optimization is in an EquilibriumOptimizer with another optimization that removes `host_from_gpu(gpu_from_host)`.