Not a bug. The docs: "Sort usually orders expressions by putting shorter ones first, and then comparing parts in a depth‐first manner."

You want `SortBy[list,N]`, I think. For more complex cases, use `Ordering[]` to get a list of indexes and use that to reorder the original list:

 Ordering@N@list
 list[[%]]