RE: Difference Between FIELDCAPTION and Include Caption
FIELDCAPTION function Pros: works the same way as text constants. It provides ability to transfer captions defined for table fields and to effectively use captions. Cons: just like text constants, they clutter the dataset and slow the performance of the report down.
IncludeCaption flag Pros: this flag is transferring captions of a table field to static text inside the RDCL report, the same way labels do. It works very efficiently and is very easy to maintain and develop. Cons: does not work when you need to dynamically change the report language in the middle of execution or you have custom captions for a field.
<table name>.FIELDCAPTION(<table field name>) is useful if you need to switch the report language dynamically, otherwise using IncludeCaption is the best choice for performances.