I have also read that domain aggregate functions can be slow - especially if they are within a loop construct.
BUt if you have a WHERE condition on the DLookup or other domain aggregate functions, I don't think it will be noticeably slow.
see this link for DLookup syntax and examples; and also note the equivalent SQL
Example
Let's look at a simple example:
DLookup("[UnitPrice]", "Order Details", "OrderID = 10248")
In this example, you would be retrieving the UnitPrice field from the Order Details table where the OrderID is 10248.
This is the same as the following SQL statement:
SELECT UnitPrice AS Expr1
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10248));