You're right, those methods exist in the docs and they can actually be used. My answer was not quite correct, sorry.
So here's a quick example:
func _ready():
# I created a polygon with an initial size of 3
print($StaticBody/CollisionPolygon.polygon.size()) # size = 3
# When we try to append a new Vector2 directly on the node, nothing happens
$StaticBody/CollisionPolygon.polygon.append(Vector2(3,3))
print($StaticBody/CollisionPolygon.polygon.size()) # size = 3
# resize doesn't work either
$StaticBody/CollisionPolygon.polygon.resize(4)
$StaticBody/CollisionPolygon.polygon.append(Vector2(5,5))
print($StaticBody/CollisionPolygon.polygon.size()) # size is 3
# however, if we create a copy of the polygon array
var array = $StaticBody/CollisionPolygon.polygon
# and append a new Vector2
array.append(Vector2(9,9))
# and then assign it to the node
$StaticBody/CollisionPolygon.polygon = array
# the size changes as expected
print($StaticBody/CollisionPolygon.polygon.size()) # size = 4
So in conclusion: You can use the append method, but not directly on the ColisionPolygon.polygon
property. You have to create a copy first and then update the ColisionPolygon.polygon
property.