@user30184 already gave the short answer in the comments here. For a longer answer, one needs to look to the Simple Feature Access - Part 1: Common Architecture | OGC standard.
The Well-known Text (WKT) representation in the Simple Feature Access (SFA) standard describes how to textually represent an instance of a geometry type, it doesn't define the geometry type itself. The geometry object model is defined earlier in the standard, and the question/issue you have with parentheses is more an outcome of the geometry object model than the WKT representation.
Starting with the geometry object model, 6.1.11 Polygon, Triangle states:
A Polygon is a planar Surface defined by 1 exterior boundary and 0 or
more interior boundaries. Each interior boundary defines a hole in the
Polygon.
...
The assertions for Polygons (the rules that define valid Polygons) are
as follows:
a) Polygons are topologically closed;
b) The boundary of a
Polygon consists of a set of LinearRings that make up its exterior and
interior boundaries;
And 6.1.7 LineString, Line, LinearRing states:
A LineString is a Curve with linear interpolation between Points. Each
consecutive pair of Points defines a Line segment.
A Line is a LineString with exactly 2 Points.
A LinearRing is a LineString that is both closed and simple
Moving down the standard to 7.2.2 BNF Productions for Two-Dimension Geometry WKT:
<linestring tagged text> ::= linestring <linestring text>
<polygon tagged text> ::= polygon <polygon text>
...
<linestring text> ::= <empty set> | <left paren>
<point>
{<comma> <point>}*
<right paren>
<polygon text> ::= <empty set> | <left paren>
<linestring text>
{<comma> <linestring text>}*
<right paren>
The WKT polygon "double parentheses" inconsistency is actually the opposite, it represents consistency with how WKT linestring is implemented. Just as a WKT linestring is bounded by a single set of parentheses when not empty, so is WKT polygon. The difference is that polygons are comprised of closed and simple linestrings while linestrings are comprised of points. The "extra" set of parentheses isn't coming from the WKT polygon but from the WKT linestrings that make up the WKT polygon.
(( {ring1} [),( {ring2}] ))
. Two starting parens is consistent, in that one pair is required for LINESTRING and two pair optional (for multipart), and POLYGON is two parens single, three parens multipart.