Read up on the DXF definitions:
http://usa.autodesk.com/adsk/servlet/item?id=12272454&linkID=10809853&siteID=123112Open the PDF of your version (though XData hasn't changed in quite a few years so any should do). Go to the "Advanced DXF Issues" group, under that is a sub-headin "About Extended Data (DXF)". It gives a sample of how it looks inside a DXF file and then a description of the codes and their meanings, some of them have special meanings which could cause problems if you send the wrong type of data. Note XData may contain more than one item with the same code, so you can add a whole batch of them one after another.
Just remember that XData has a limit on its total size. You use the xdsize and xdroom functions to check how much your data is going to take up and how much "room" is left for you to put into an entity's DXF data list.
As for the ldata issue, I personally don't see an issue if you wish to use it. In general people stay away from it because it's only available to ARX and Lisp, it's impossible to get at through VBA (I don't know about DotNet). So if all your code is going to be lisp, and only that is going to make use of this data - there doesn't seem to be much of a problem.
Edit: Sorry
stupid me! Missed that you were talking about XRecords. No those don't have an issue with what you place inside them, you can even also add numerous codes of the same number into the same XRecord. Though usually you'd have one piece of data per XRecord placed inside a dictionary given a name / autoname. Then you can use dictsearch to find the relevant xrecord or dictnext if you simply want to step through them.