Hi Rushino,
1) If it works, it works. But with string literals you do indeed run the risk of naming problems. If the ClientID works, you should use that instead. The only problem is: how do you get the ClientID? If you have it, you already have a reference to the control so there's no need for FindControl.... ;-)
2) A master page is not created first. Confusing as it may sound, a Master Page actually turns up as a child control of the page. More details can be found here, in particular Figure 7:
http://msdn.microsoft.com/en-us/magazine/cc163967.aspx
Cheers,
Imar