В андроиде параметры с префиксом layout_ используются "родительской" вью(т.е. объемлюшим ViewGroup, например Linear/Relative/FrameLayout) для того, чтобы правильно расположить вью. Они хранятся в LayoutParams, это отдельный класс, свой для каждого ViewGroup. Например, в CoordinatorLayout.LayoutParams есть layout_behaviour - задаёт поведение для этой вью.
А параметры без такого префикса используются самой вью (например, padding - насколько контент отстоит от границ. Родительская вью об этом ничего не знает, ей это не надо).
С философской точки зрения это, конечно, мешанина, но на практике довольно быстро начинаешь фильтровать все эти layout_.
Альтернатива есть только одна - писать лэйауты в коде, но это плохая идея.