1 - Patterns address (and are formulated using) the semantics of intent. They can not address domain semantics; that is addressed in the specific realization of a given pattern (which some would consider "redundant code" but that is not strictly speaking, correct).
2 - In a meta-reflective language (type i) (such as LISP) patterns are expressed as (reusable) macros. In languages that lack the ability to extend the compiler (type ii), patterns are expressed as specifications. So regardless of the expressive power of a type-ii language, there will always remain the possibility that a pattern can be identified that would require an extension to that language's expressive power.