Execution of Replication formulas- Please Explain

Can anyone explain the how and where(environment formula is executed in)of the execution of replication formulas. Maybe that will shed some light on why (according to the documentation)we can’t use @Username, @Environment, @DbLookup or @Now in a Replication formula. Should @ServerName be added to that list in the documentation?

If a replication formula is set for a specific server ie.(When computer 'ServerName" receives from ‘any server’) and the server is a spoke server in a hub and spoke configuration where the hub executes a pull/push on a schedule, which server does the actual evaluation of the replication formula? The admin documentation states that the replicator task on the hub server does the work for a pull/push replication. Therefore a replication formula that contains @Username will return the hub server name?

Is the execution environment different for the replication formula when a pull/pull replication is initiated via a connection document? When the spoke does it’s corresponding pull operation in a pull/pull configuration, then the execution environment (replicator task) is then going to be the spoke server? Under that criteria will @Username return the servername in the replication formula for the spoke server since the pull is executed by the Replicator Task on the spoke?

It would be nice to not have to hard-code server names and create multiple replication formulas for some databases.