I found the issue, I showed wrong sequence of 'find' calls, actually the find was getting called recursively, and in that it retains the context of parent call probably.
I was thinking it to be a re-entrant function, but looks like its not.
This is how it looked :
print "In finda, $File:Find:name\n";
find (\&findb, "/pqr");
print "In findb, $File:Find:name\n";
find (\&finda, "/abc/xyz");
Anyways, now I have changed the script to have the recursive nature removed, so that the two calls happens sequentially and now its working fine.
Sorry for the wrong code and very thankful for your help indeed !