Step 1: Let us denote the triangle sides: \[ AB = 1, \quad BC = a, \quad CA = b \] with \(a > 1, b > 1\).
Step 2: Since \(D\) is the mid-point of \(AB\), we have: \[ AD = DB = \tfrac{1}{2}. \]
Step 3: To maximize \(\angle ACD\), we should try to make side lengths \(a, b\) as large as possible within triangle inequality rules. The triangle inequalities are: \[ a + b > 1, \quad a + 1 > b, \quad b + 1 > a. \] These imply that \(a\) and \(b\) cannot differ by more than 1.
Step 4: Hence possible values are: \[ (a, b) = (n, n) \quad \text{or} \quad (n, n+1). \] So the triangle is almost isosceles with small base \(AB=1\).
Step 5: By symmetry, when \(a = b\), the triangle is isosceles with very short base. Then \(\triangle ABC\) becomes extremely “tall”, making point \(D\) very close to \(A\). This forces \(\angle ACD\) to become very small.
Step 6: Approximate calculation (using cosine rule in isosceles cases and midpoint property) shows: \(\angle ACD \approx 15^\circ\) for large side lengths.
Step 7: Since the angle decreases as \(a, b\) grow, the maximum possible angle is achieved at the limiting case of nearly equal large sides. Thus, the maximum value of \(\angle ACD\) is close to: \[ \boxed{15^\circ} \]