I did a bit of research.
First thing I learned is that it is possible to assign DHCP leases based on criteria other than a MAC address.
From the dhcp FAQ:
What is a Client ID?
What is termed the Client ID for the
purposes of the DHCP protocol is
whatever is used by the protocol to
identify the client computer. By
default, DHCP implementations
typically employ the client's MAC
address for this purpose, but the DHCP
protocol allows other options. Some
DHCP implementations have a setup
option to specify the client ID you
want. One alternative to the MAC
address is simply a character string
of your choice. In any case, in order
for DHCP to function, you must be
certain that no other client is using
the client ID you choose, and you must
be sure the DHCP server will accept
it.
Then, although it is apparently not supported by the luci web interface on openWRT, dnsmasq itself supports client_id, and multiple MAC addresses (with the some cautioning).
From the dnsmasq man page:
-G, --dhcp-host=[hwaddr][,id:client_id|*][,set:tag][,ipaddr][,hostname][,lease_time][,ignore]
Specify per host parameters for the
DHCP server. This allows a machine
with a particular hardware address to
be always allocated the same hostname,
IP address and lease time. A hostname
specified like this overrides any
supplied by the DHCP client on the
machine. It is also allowable to ommit
the hardware address and include the
hostname, in which case the IP address
and lease times will apply to any
machine claiming that name. For
example
--dhcp-host=00:20:e0:3b:13:af,wap,infinite
tells dnsmasq to give the machine with
hardware address 00:20:e0:3b:13:af the
name wap, and an infinite DHCP lease.
--dhcp-host=lap,192.168.0.199 tells dnsmasq to always allocate the machine
lap the IP address 192.168.0.199.
(...)
It is allowed to use client
identifiers rather than hardware
addresses to identify hosts by
prefixing with 'id:'. Thus:
--dhcp-host=id:01:02:03:04,..... refers to the host with client
identifier 01:02:03:04. It is also
allowed to specify the client ID as
text, like this:
--dhcp-host=id:clientidastext,.....
(...)
As a special case, it is
possible to include more than one
hardware address. eg:
--dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2
This allows an IP address to be
associated with multiple hardware
addresses, and gives dnsmasq
permission to abandon a DHCP lease to
one of the hardware addresses when
another one asks for a lease. Beware
that this is a dangerous thing to do,
it will only work reliably if only one
of the hardware addresses is active at
any time and there is no way for
dnsmasq to enforce this. It is, for
instance, useful to allocate a stable
IP address to a laptop which has both
wired and wireless interfaces.
I opted for the multi-mac solution (because I didn't try to find out how I could specify the client id on the client side, which is something that has to be done for each separate client, and the multi-mac alternative is one solution for all the portables in the house.)
I circumvented the luci interface, and added directly to /etc/dnsmasq.conf the following line:
dhcp-hostsfile=/etc/dnsmasq-dhcphosts.conf
and /etc/dnsmasq-dhcphosts.conf contains lines of the following format:
mac1,mac2,ip
(I keep this config in a seperate file to prevent to have it overwritten by the next update.)
Works fine.