Variables are a nono? Lol, this plain afirmation simply makes me laugh. How do you expect to enhance your map with complicated features if you don't use variables? Are you refering to instanceability? Now that's something different. Using JASS you can overcome this problem.
And yes, it is possible to execute a piece of code for only one player. But be careful about one thing: desyncs. When multiple players share different global information (I'll give you an example in a moment) then some get disconnected (I don't know more about this area, as I've never programmed for multiplayer). So be careful! The example: consider that player 1 has a unit with 100 life. However, locally, its life was modified to 300. If the unit receives 150 damage, for player 2, for example, the unit would be dead. But since for player 1 the unit had more life, it will be alive. Boom! Desync!
There is a function that can allow you to make the "only for one player" code above. You are going to need JASS for this though.
JASS:
native function GetLocalPlayer takes nothing returns player
How to use it? Pretty simple as well.
JASS:
local player p //set pylon player here
if (GetLocalPlayer() == p) then
call CreateUnit(p, PylonModel(), x0,y0,0)
endif
Be careful! Unit must have locust! And even this could cause desync, as the unit is global information. However, I know one thing for sure: Unit vertex coloring can be locally modified. So create the unit perhaps globally, and if the local player is NOT the one with the pylon power, set the coloring's alpha to 0 (or was it 255? Can't remember exactly, invisible anyway).
Hope this helped!
-Mihai