glDrawElements vs glCallLists

I read about glDrawElements in another topic and was introduced to lists a day ago. I’m wondering what the most efficient of these two is, and what REALLY makes the difference in a gl program.
As far as I have noticed from reading these forums are the amount of calls made to the GL layer the most important in GL programming. Thus using glDrawElements instead of painting each vertex seperately. I this true? Are the amount of calls/state changes really THE MOST IMPORTANT?!
If so, how tough are all the functions? Which functions eat the most resources?

And does this make glCallList the ultimate solution to minimize calls?

TY

List is allready set of done commands and you can use DrewElements in List, list should be quicker at cost of some space I usualy use DrawElements inside the list) I’ve heard that it could remove some intersection problems, although not sure. The idea is that vertices that are replicated are retaken, rather than specifying new ones.