Weak references solve real leak patterns: JavaScript's WeakMap enables metadata-on-DOM-nodes without leaking documents, Java's WeakHashMap backs caches, and Swift developers write weak self in every closure to break retain cycles. Implementing them shows why the GC must treat these pointers specially during marking.