Проясните логику с массивами пожалуйста

 
По идее если имеем массив:

int arr[2][3]

то запись

arr[0][]

должна восприниматься как одномерный массив с тремя элементами и обрабатываться соответствующими функциями ArraySize, ArrayCopy и т.п.

P.S. Я понимаю что лучшему нет предела, но эта проблема, по моему, резко снижает функциональность языка при обработке массивов, а решается не так уж сложно при небольшой коррекции синтаксиса.
Если принять что:

arr[][] - Весь массив
arr[0][] - Первая колонка
arr[][0] - Первая строка
arr[0][0] - Первый элемент
 
описанная логика (за исключением некоторых синтаксических деталей) верна для языков с адресной арифметикой, для "матричных процессоров". но не для нашего языка.
посмотрите функцию ArratRange - она позволяет определять количество элементов любой размерности массива
Причина обращения: