As for the functions you say don't exist:
40ACB0 - That was a typo, it's really 40ABC0.
410400 - That's definitely a function! There's just no padding 'CC' bytes between it and the switch table of the previous function because it just happened to line up nicely that way. Here's proof:
418C10 - Another typo, it should be 418C20
Clarification:
4023D0 - It basically contains the logic for each of the background types - it contains the thing that makes the scrolling ones scroll, and the static ones static, and... well you get the point. It also contains the calls to draw them to the screen.
40C5B0 - It's basically the *exact* same as 40C3C0 but the difference is where 3C0 uses a masked blit that makes black transparent 5B0 just does a straight blit so black will show up. Probably slightly faster and since backgrounds are the bottom layer that's why it's used for those.
425BF0 - Well, if you dummy out this function, then the numbers that appear when you take damage ('-127' for instance) or collect Xp triangles no longer appear. I think that these things might be their own type of object althought
that is just a hunch; all I know for sure is this makes them appear.
A switch jump is a tool used in assembly to jump to different segments of code based on the value of a certain variable; the table is the list of possible offsets that can be jumped to. In the picture above you can see the switch table for 40FB90 located at 4103EC; the jump is at 41013E, here's a picture of it.
And this is what the setup of an indexed switch table looks like;
Indexes to switch tables look almost the same but instead of a sequence of 4-byte things it's a sequence of 1-byte things that tell which 4-byte address to jump to... it's kind of hard to explain but I hope that makes sense.
And as far as I know, switch tables are the *only* kind of 'data' that's located in the code segment of the .exe