I will try to answer my own question, maybe it will be useful to someone.
First, related to JNDI, my understanding was correct. I found a really good link (I am not sure about Java EE version), but this one explained in detail how JNDI works:
Second question was related to ENC. I was partially right, however ENC is a context in the JNDI world (as defined in the context definition for JNDI). This context is mostly used as an aliasing purposes for being able to reference your container/module/application EJB no matter what the container is. So whenever you reference something from ENC, you are redirected to the proper resource, that can reside in another module/application/application server. Another link that was usefull to me is the one below. It contains several link so moake sure you read them all:
http://www.javacodegeeks.com/2011/08/ejb-programmatic-lookup.html
Regards