I believe the answer to your question has a lot to do with the meaning of abstract. As you said, a class can be abstract without any abstract methods but is it really an abstract class at that point? Abstraction is synonymous with theory. In the aspect of programming, your abstract classes provide a theory of implementation but not the full implementation.
Mostly use will use abstract class to have contract with all child classes that implements it in a way that child classes must provide the implementation for the methods which are declared as abstract in parent class(unless the child class is also abstract).
For Example:- you may declare class Animal as abstract and let us say you have abstract method walk() in this class, then all the child classes(let us say Dog and Cat) must define how both these animals walk.
So you can not create object of Animal class because if you look it in a broad way then animal is an abstract term for all the animals and each type of animal will have its own walking style.