There is very little that is 'magical' about a lisp-like language (in terms of the bastardized vision of 'magic' popularized by blessed hashes, operator overloading, and dynamically constructed objects in various scripting languages). There are few concepts required to understand it:
(function arg arg) ; is the default form
And every form is passed to eval, which calls apply, which calls eval... until you get to a fully expanded form and the final call to eval.
(map #'my-func '(1 2 3 4)) ; might eval to
(lambda () (my-func 1) (my-func 2) ...) ; which when passed to apply might result in
(list 1 4 9 16) ; which eval's to itself, a list object... 'list being a primitive
I just describe a theoretical evaluator (#'map is probably not implemented this way in most lisps). You can implement eval/apply in terms of a register machine if that makes you happy. Just read SICP for a good, basic description of one.
I appreciate what the Algol-derivative languages have done and what they're useful for; but there are a large class of programming problems where telling the compiler how to solve your problem for you is far more efficient than manipulating the machine with primitives. It all boils down to that eventually and lisp-like languages simply take you to higher levels of abstractions with consistent semantics.