From the top then.
The typical 3ds ROM is encrypted with keys we do not know. You can however use a 3ds that can run homebrew to generate a means to decrypt them, the files it produces are the same size as the ROM and as they are XORed against the ROM they became known as XORpads.
Running a modified ROM can be done in a variety of ways but the big two that most gateway style flash cart users will see are 0 key and just encrypted with the xorpad again. 0 key is as it sounds and the ROM is encrypted with an all 0 key. Recently the so called hans stuff released by smea allows a kind of side loading of this.
GBAtemp does not allow sharing of the xorpads and many places will also not allow it, even if they otherwise allow keys to be shared. Afraid I have not been out in the http/torrent/ROM download site world to know what goes.
The 3ds ROM has two sections. The binary section which houses the code for the processor and the rest of it which houses all the files. As ever though the binary could contain some text and other things depending upon how it is programmed. Respectively they are known as the ExeFS and ROMFS, I shall leave you to ponder the reasoning behind those name choices. This applies whether you are doing the NCSD (or the cci aka .3ds ROM) or NCCH (aka .cxi) which usually is seen and known to the average 3ds user around here as CIA files, or roughly the 3ds equivalent of WAD files on the wii (small files that contain whole games and are usually associated with downloadable games and some lower level aspects of the system). The binaries can be extended by the so called CRO0 files, they are a bit more modern in their thinking than the DS approach of using overlays but I am not sure I would pit it against a true dynamically linked library setup.
3ds ROMs have a header unique to each cart installed, said header is used to allow access to online services and some took to calling these ROMS with header .3dz. Apparently Nintendo's online security division was hitting the crack pipe a bit hard when they implemented the system though as any valid header from any game (including non online ones) will work for any and all games, so some people buy a throwaway game, dump the header and use it on all their other games. Bans have happened (kind of) and using public headers (headers which were dumped and released to the world) is not a great plan.
http://3dbrew.org/wiki/Category:File_formats has a lot on the higher level formats and a few sub ones. I will spare you the discussion of banners, icons and such like; many do play with them for various hacks and custom themes but it is nothing terribly interesting if you have ever messed with anything like that before. That said the banner stuff is a fairly simple nice introduction to the basic graphics format ( CBMD ) and cwav audio format, more on those in a little bit.
"if they fixed a bug for the eShop release, but the bug still exists with the cart version"
There might be some regional differences, however 3ds games can support updates (the .CSU format) so that might not happen. I do not think any are nerfed to fit in the download. Some had pondered what could be done using the updates but the HANS stuff appears to have sidestepped much of that.
The 3ds does have actual 3d hardware that resembles an actual piece of 3d hardware/something familiar to the more embedded side of opengl (in this case an older version with some of the newer stuff for textures/shaders bolted on). It will be a bit of a slog but
http://gbatemp.net/threads/extracting-models-and-textures-from-3ds-games.370788/ has some good stuff in it. If you just want a search term then bcmdl is the main model format, it will be flanked by animations, textures and other things depending upon the game but that is the model format and a good search term. I do not have a good link for shaders but
http://gbatemp.net/threads/gpu-re-need-everyones-help.379633/ will hopefully cover a few choice things.
Following the wii, GC, probably Wii U, GBA and DS it has its own sound format used by an awful lot of games. In this case it is called BCSAR, which in turn breaks down into CSTM, CWSD, and CWAV. Though there is also BRSTM which most will first encounter if they want to go into modding smash brothers.
Like the GBA and DS before it the 3ds uses compression and a variation on the theme of LZ is the more popular. It is not backwards compatible with the GBA and DS implementations and annoyingly uses some of the header values (11 in this case) so 3ds type 11 LZ would have to be the thing rather than the DS where a simple type 11 LZ would say things people needed to know. Afraid I am not up on the current 3ds compression supporting tools. Archive formats are also a thing still for whatever reason, the szs format seen on the wii appeared in the exact same format as well.
If you are more used to the DS then there is nothing quite like tinke or crystaltile2 to play with, however
https://gbatemp.net/threads/release-every-file-explorer.373615/ gets close and exceeds those at times. Most seem to gravitate towards that and it can get a lot done, I am not such a fan of premade tools and would rather understand things from the ground up.
So yeah the 3ds is a halfway modern system in the software side of things, messed about by cretins and implemented by fools but the underlying principles shine though. Pity there are so few games for it.