1. Correct, addPublicVariableEventHandler does not broadcast anything...it does just the opposite, it creates an event handler that waits for something to be broadcast to it. If you add a PVEH only on the server, if the PV is later broadcasted, the PVEH will only fire on the server.
2. Also correct, when you use the publicVariable command, it will broadcast that variable (and its value) to every other machine. If broadcasted from the server, it will send it to all clients. If broadcast from a client, it will be sent to the server and all other clients.
Regarding the code you posted, I do not remember that one exactly, but in general, if the server and clients will all need to be able to access the value of lehetobj1, then you should initialize it on all of them. Don't just rely on sending it from the server. Also, if you are initializing it on all machines and at the beginning of the mission (in an init.sqs or init.sqf) you probably do not need to use publicVariable to broadcast the most current value because all the machines already have it AND if you might have JIP players, you may accidentally overwrite the value and break your mission (or part of it).