To make macros possible, the relations between the objects must be changed internally. This can lead to problems if the given objects in the macro depend on each other. If you can avoid this, please do so. But this does not mean that the given objects must be free points! You can use arbitrary objects as given objects or even expressions.
The macro-mechanism tries its best if the given objects depend on each other. If this is necessary for your macro, try it, but you might get unwanted side-effects.