1) yes. But not 100%, it tends to eat delays, so it is not recommended to try macros this way, plus if it eats delays, it might also be affecting IR codes.
2)
If you find an entry on the database that works your
device do these contain the discrete codes?
Possibly, it depends on if the person has tried to find them.
All the info that makes a ccf work can be viewed in PE. A good place to start is to run the emulator. Also read the FAQ for what different things mean.
3) most of us don't differentiate between how the code enters the Pronto (UDB, learnt, pasted....). So learn is used more as a general term, as opposed to alias. The recommendation made by a lot of us here (but then again it is more of a shared opinion then anything else) is to put all the actual codes for a device on one panel, so that if you make changes later to the interface you don't risk loosing functionality and if you change devices you don't have to try and find every place where an actual code is created. The only difference between UDB and not UDB is accessibility to others, if it is a UDB code then it is useless to TS1000, Marantz remotes, and I think the Yammah, Onkyo , and Philips have slightly different databases, so codes might be useless between them.