Core component of SQL Server for storing, processing, and securing data
When they add new data types, they typically provide formats that work with downlevel drivers. When it comes to the JSON type, I don't think they never return it to the client as that type, but they always return it as nvarchar(MAX). I don't know why you got varchar(MAX) from SQLDescribeColumn, but it could explain the later error.
As for vector, I don't how they return that, but vector is really an alias type to varbinary.