I just tested with ArcMap 10.5 connecting to a 10.4.x enterprise geodatabase in SQL Server, and using a SQL clause works:
>>> with arcpy.da.SearchCursor(r'Database Connections\Default@SGDB@localdb.sde\SGDB.DBO.Infra', ["SHAPE@AREA","OID@"],sql_clause=(None,"ORDER BY SHAPE.STArea() DESC")) as cur:
... for area,oid in cur:
... print "{} {}".format(area,oid)
...
39593.1062297 3
26339.7586344 2
20269.7498507 6
8894.95466122 11
8412.44189983 4
8049.8586996 1
7620.10032388 10
7431.46963174 5
6953.70626041 8
6316.28689426 9
6142.45012789 7