SharePoint is full of love, the kind of love that hurts.
1) SharePoint's calculated columns would have been a great idea if Microsoft had allowed us to extend/add functions. For some reason though you get limited to a small subset of Excel functions.
For example, to replace 0 to 4 spaces in a calculated column we had to write something like this. Not only that, but the level of nested calls is limited to 8 making it quite difficult to avoid complexities.
=IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])))), REPLACE(IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), 1, "%20"), IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))))), REPLACE(IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])))), REPLACE(IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), 1, "%20"), IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])))), REPLACE(IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), 1, "%20"), IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])))), 1, "%20"), IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])))), REPLACE(IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), FIND(" ", IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), 1, "%20"), IF(ISNUMBER(FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))), REPLACE(IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]), FIND(" ", IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title])), 1, "%20"), IF(ISNUMBER(FIND(" ", [Title])), REPLACE([Title], FIND(" ", [Title]), 1, "%20"), [Title]))))
2) Importing and Exporting sites containing WorkFlows is a mission because items attached to workflows will not persist this information after importing. (EDIT isue may have been fixed with the latest service pack)
3) You can't do joins with CAML. CAML itself is a big limitation.
4) You can't use a lookup column or a people column in a calculated column.