Никто не запрещает его использовать главное понимать что у него есть свои ограничения (там не стоит делать bind, или как в данном случае store.load, и вообще, там стоит указывать вещи которые не должны быть одинаковыми на уровне цепочки прототипов).
А держать логику работы сложного компонента в view то ещё удовольствие, хотя бы потому что не позволяет повторно использовать код.
В данном случае можно вообще обойтись без initComponent'a, и без всяких this.
Ext.define('MyApp.Panel', {
extend : 'Ext.Panel',
defaultListenerScope: true,
tellSomething : function () { console.log('Something'); },
tbar : [
{
text : 'Click me',
handler : 'tellSomething'
}
]
});
Для уровня представления ExtJS предлагает использовать именно декларативный стиль.