I hope the compiler does not store type info for every record type in the system in my EXE file!
Yes, it does. Also for classes, method and procedure pointers and basically any type. But only those that are used in your program.
Does it honor {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} ?
As you should know we do not have extended RTTI, so this can't be answered at the current state.
Also in Delphi the information about published properties, fields and methods would still be available in the legacy parts of the RTTI even if the above directive is given.
Yes, it does. Also for classes, method and procedure pointers and basically any type. But only those that are used in your program.
Only those type infos or only those types (that are used in your program)?
Types themselves do not exist in the final binary (it's only assembly code after all). Their type information does however (if the corresponding type is used).