This behavior is limited to jConnect. SQL Anywhere JDBC driver does not appear to encounter this issue.
My initial quick test worked because 1) my test had only one database running on the server and 2) connections with the 'special' name were falling back to the default database for the server. The default database on a server is the first database that gets started.
Executing "select current database" confirmed that I was not connecting to the database named BANDENM&W but rather another database.
In jConnect, the & is used to delimit connection properties. From the jConnect documentation:
"If the value for one of the connection properties contains &, precede the "&" ... with a backslash (\)."
So, the ServiceName=\"BANDENM&W\""; should be written as
ServiceName=BANDENM\\&W
I have tested this in SA16 with jConnect 3 and it appears to be working.
The other option is to provide a name that is not using that character. You can use the -n option to name the database at startup.