I think that having it as an extension is fine. Ideally something that's bundled with Flarum but disabled by default.
If you make an extension for it, you may want to consider enabling the tables BBCodes in addition to the PipeTables plugin. The PipeTables plugin will create the relevant tags for it, all you have to do is enable them to be used in BBCodes if the BBCodes plugin is enabled. Maybe something like that:
if (isset($configurator->BBCodes))
{
$configurator->BBCodes->add('TABLE');
$configurator->BBCodes->add('THEAD');
$configurator->BBCodes->add('TBODY');
$configurator->BBCodes->add('TR');
$configurator->BBCodes->add('TD', ['defaultAttribute' => 'align']);
$configurator->BBCodes->add('TH', ['defaultAttribute' => 'align']);
}
The tables extension would need to call Illuminate\Events\Dispatcher::listen()
with a priority that guarantees it'll be called after the BBCodes extension.