IMHO, we should either create a simple wiki-style table markup and leave the complex tables to HTML, or enable the wiki-markup to do both, inevitable resulting in a more complicated markup.
For that, we will need a way to include attributes in tables, rows and cells, no matter if we use stylesheets or "inline" attributes.
My (general) proposal: {attr|text} where *text* can span multiple lines (in the source!), and can include nested {attr|text} constructs. The *attr* part is always optional.
Now, should we use that for tables only, or for div and span as well. In the former case, we could say {{{ means table {{ means row { means cell which could look like {{ {President} {Instrument} }} with *all* HTML options available if needed, for each element: {colspan=2 bgcolor=blue|President}
Or, we only use {{}}, with {{table|text}}, {{row|text}}, {{div|text}}, and *cell* as default. Looks like {{table| {{row| {{President}} {{Instrument}} }} }} Not very pretty, but with all options available, even nested tables etc.
Optionally, we can limit HTML attributes by using our own style: {{table species| using "style:species" as stylesheet, or {{table, blue background, thin red border,centered|
Sorry for typos and not answering to other suggestions, but I am on vacation, typing on a PalmPilot...
Magnus
wikipedia-l@lists.wikimedia.org