A node's style.fill / style.stroke may be a gradient or pattern spec object, and style.shadow a Shadow spec. Each is materialised as a real <linearGradient> / <radialGradient> / <pattern> / <filter> in one deduped <defs> and referenced by url(#…). Two identical specs share ONE def.