I bleive this is coorect but someone will jump in if I am wrong...
1. Design your DB and defing the PK and FKs would likely make the smart linking more accurate but have no direct impact on any report design or functionality. That is defined in crystal by adding data sources (tables) and linking them accordingly in the Database Expert. Say in your DB you have Table1.fieldA as a PK and table2.fieldB is the same data as a FK. In Crystal you can completely ignore that relationship and join on something else. No different than say creating a view or stored procedure in SQL.
2. You will want to maximize your indexed data but it does not impact the joins.
3. Yes you will manually link based on your knowledge of how you want the data between the tables to function for this report. The Next report may require the same tables linked in a different way.
Be aware that in crystal outer joins are not enforced unless you make then so or until you use a piece of date from both tables in the join.
I am sure there is more but I hope that gets you a framework.
Edited by DBlank - 03 Nov 2009 at 3:20pm