I solved my problem using pretty basic approach. For a selected line, I (1) retrieved XY coordinates of start and end of the line, (2) used SelectLayerByLocation to find any point features intersected by the line, (3) extracted XY coordinates of the intersected points, and (4) finally compared the start and end XY coordinates of the line with XY coordinates from point features. Once FROM point and TO point were identified, attribute transfer was just a matter of reading attribute from point and writing to the line attribute. This process was looped through the whole line segments.
Cheers,
Gi-Choul