1. Ты назвал первым различием возможность множественного наследования. Засчитано.
2. Абстрактный класс может содержать логику и это плюс в сторону абстрактного класса и минус в сторону интерфейса.
3. Абстрактный класс легко можно заставить реализовать полностью, точно так же как и интерфейс.
4. Касательно структуры, засчитано, но сейчас мы не о них, структуры это тип значений, другая тема.
1. Шаблоном может выйти и абстрактный класс
2. Композиция так же возможно и легко через классы
1. Не спорю, что абстрактные классы могут выступать и шаблоном, но тогда надо ручками делать виртуальные методы, свойства - это как минимум лень.
2. Тоже не спорю, но опять же есть ограничение - наследник должен наследоваться от абстрактного класса, который уже имеет логику. Но оба эти вопроса - это вопросы правильного применения. И не думаю, что стоит тут дальше спорить, так как чувствую, что мы сходимся в этом.