Att svara på det är ju svårt, det beror på vad du menar med "id".
Det kan vara allt ifrån ett id till ett stylsheet till ett klockslag eller ett unikt nummer för att kunna skilja på det som skickas.
Vad tänkte du på?
Har du kod?
Såg en kod för att skicka formulär via JMail som hade ID i koden och undrade om ID är något som måste ingå för att funktionen ska fungera...
Men det är alltså bara något man lägger till om man vill...?
Skulle tippa på att man har ett ID för att kunna applicera en stilmall (stylesheet) på formulärfältet. Men det går inte att säga utan att se hela sidan, inklusive stilmallar.
Name och id är i princip samma sak, men de kommer från olika bakgrund (dvs de har sina rötter i olika HTML/xhtml-standarder).
Före HTML4 - name
HTML4 - ID införs, och name är kvar.
xhtml 1.0 - ID ges "ny betydelse" pga att xhtml är XML-baserat, och eftersom id enligt XML kan finnas på vilket element som helst och att (också enligt XML) varje id måste ha ett värde som är unikt i hela dokumentet - oavsett tagg...
Efter xhtml 1.0 - Endast id. Name tas bort.
Så länge man kör HTML4 eller xhtml 1 så rekommenderas man att använda båda och ge dem samma värde.
Se: http://www.w3.org/TR/xhtml1/#h-4.10
Detta för att "riktigt gamla" webbläsare bara hanterar "name" och att "framtida" kanske bara väljer att förstå "id"...
Och, som sagt, med DOM/Javascript (eller med CSS) kan man "komma åt" <input>-taggen på ett smidigt (och standardiserat) sätt via id (script som validerar inmatade värden kan knytas dit via DOM/Javascript och utseendet kan knytas via CSS - bägge utan att taggen behöver skrivas om ;) )...
Har själv inte orkat klura ut exakt hur användningen name kontra id påverkar hur värdena från formuläret skickas till servern i praktiken - ännu - men name verkar användas om det finns om jag inte missminner mig helt ;)