When you first explain Tridion Dynamic Linking, you might get some head scratching and puzzled looks.
Dynamic linking allows content authors, who may be separate from editors (think of the classic publishing setup for, you know... newspapers), the ability to create links to other content without needing to understand where that content is used. Before you say, "but I want to link to a specific page," there are several ways to handle such linking, it really depends on your environment and business needs ("page proxy" method comes to mind, but we'll save that for later).
The linking algorithm is fairly simple if you think in terms of either finding lost items or familial relationships (I know it's hard to not just love everyone the same in your family), but here are the steps.
If you have access, read the official explanation for Component Link Resolving on SDL Live Content.
For a dynamic component link, rendering will create a regular hyperlink to a page that has a component presentation (component + template) for the template with the highest priority. If you paid attention during training or read the docs, you'll know to set your snippet component templates to lower priority (or never link) than your full articles. Your main full article details template would have high priority.
In the case of ties, here's the break down. Check...
1. my page
2. my web folder or structure group (SG)
3. child SG and pages
4. parent SG and pages
5. sibling SG and pages
6. grandparent SG and pages
7. sibling of my parent (aunt/tía/tante) SG
This might match your "who has my iPhone" search procedure (except around step 4, which might be "the wife" instead of "mom"). Check
1. my pockets
2. the room I'm in
3. the kid's room
4. call mom
5. text sister
6. go to grandpa's
7. ask other relatives that came over to last night's party
In the case that you don't want this behavior, create whatever linking logic you fancy. Nothing's stopping you from using XSLT, RegEx, or some transformation function in template logic or maybe presentation server code. Want to use a page with querystring parameter? Sure. Want to then hide the details for "SEO compliance?" Sure. You can even add template links that aren't in the schema (of course).