If I understand your question correctly, I run something similar on occasion for stormwater lines. It involves extracting depths at each endpoint and adding them to the table of the lines.
What you can do is create your own Unique ID's based off of the XY coordinates of both sources and then use those to join the tables together. You would end up doing two joins, one for the startFA and one for the endFA.
Add new fields called startFAXY and endFAXY in your lines table. Populate those by concatenating your coordinates of start and end. The startFAXY of FID0 would be "-76.35441350441, 45.434355". Run this same procedure on endFAXY. Then, continue this same process on your extracted values FA table so that you have a column that concatenates your FA table coords. Use these concatenated XY values as a unique ID to join the two sources together (lines table + FA table) and populate the field. The first join (startFAXY + FA table) would populate the startFA field. The second join (endFAXY + FA table) would populate the endFA field.
Using the example from above, FID0 startFAXY -76.350441, 45.434355 would join to a record in the FA table with a concatenated "ID" of -76.350441, 45.434355.
It is generally not perfect since it deals with coordinates, but I find I am able to capture >98% so any manual matching is not too bad. Add in the use of the Attribute Transfer Tool for theduring cleanup/QA and it really reduces the headache.