Before writing this question I wanted to highlight that I did my own research for Weeks read tens of articles but still this problem wasn't solved and the explanations I got don't make sense at all (maybe because I'm new to linking world). So I hope someone can provide simply yet very detailed answer.
I know that GOT (Global Offset Table) helps us resolve global symbols in dynamic linking which are referenced from another. Plus I read: "Each shared library has its own GOT"
But that is problematic, what if 2 programs use same shared library? both will have same values for global variables which shouldn't be the case.
As to my MAIN question: If I don't want to use lazy binding then why we need PLT at all, why not just use normal GOT as with variables?