To answer the original question: of course there are implications. Some good, some bad. It depends on how you design your application.
A better question might be: would your users rather wait an extra 200 or 500ms (or more) when they’re fetching a record or when they’re updating a record?
The real win with collection-hooks is being able to offload milliseconds from a fetch/find to an insert or update. Doing so begins by identifying any joins in your publications and find/findOne() queries and flattening them into a denormalized master-detail pattern. Once that’s done, the code to calculate the join in the find/findOne() can then be moved into a collection.after.insert() or collection.after.update() hook. Thereby effectively pre-optimizing your database queries by moving milliseconds from your read operations to your write operations.
Not every application will work with this approach; but, by and large, I think it’s safe to say that most users will be a bit more patient with a big ‘please wait…’ message after they’ve pressed ‘save’ or ‘submit’ than while they’re just browsing data and searching for something.
You always have to pay the tax man; but sometimes it’s possible to adjust when you pay. TANSTAAFL.