When I hover over the word I see another translation for restaurant, as "tom"... Is it so? I found that "tom" is empty in Swedish, but not a restaurant.
The word is a French one from the start, and I don't think that the ending 't' is pronounced in French (never studied French, though) so the Swedes dropped it. The '-ent' and '-en' endings in French words always sound like they would be spelled '-eng' or '-ang' to me (and probably to Swedes in the past as well), so the '-ang' ending isn't that wierd.
The spelling is actually restaurant in French as well, and it was loaned into Swedish as such. The restaurang spelling is much more recent, but - like you say - also much more logical.
Not the first time it happens to me. In the previous question "restaurangen" was right, and here "en restaurang" is correct and "restaurangen" is not. Why?