Step 1: Associativity of \( \diamondsuit \).
To check if \( \diamondsuit \) is associative:
\[
(a \diamondsuit b) \diamondsuit c = (a + 2b) + 2c = a + 2b + 2c,
\]
\[
a \diamondsuit (b \diamondsuit c) = a + 2(b + 2c) = a + 2b + 4c.
\]
Since the results are not equal, \( \diamondsuit \) is not associative.
Step 2: Associativity of \( \square \).
To check if \( \square \) is associative:
\[
(a \square b) \square c = (ab) \square c = (ab)c = abc,
\]
\[
a \square (b \square c) = a \square (bc) = a(bc) = abc.
\]
Since the results are equal, \( \square \) is associative. Hence, (2) is true.
Step 3: Distributivity of \( \square \) over \( \diamondsuit \).
To check if \( \square \) is distributive over \( \diamondsuit \):
\[
a \square (b \diamondsuit c) = a \cdot (b + 2c) = ab + 2ac,
\]
\[
(a \square b) \diamondsuit (a \square c) = (ab) \diamondsuit (ac) = ab + 2ac.
\]
Since the results are equal, \( \square \) is distributive over \( \diamondsuit \). Hence, (3) is false.
Step 4: Distributivity of \( \diamondsuit \) over \( \square \).
To check if \( \diamondsuit \) is distributive over \( \square \):
\[
a \diamondsuit (b \square c) = a + 2(bc),
\]
\[
(a \diamondsuit b) \square (a \diamondsuit c) = (a + 2b)(a + 2c) \neq a + 2(bc).
\]
Since the results are not equal, \( \diamondsuit \) is not distributive over \( \square \). Hence, (4) is true.
Final Answer:
\[
\boxed{(2), (4)}
\]