Well, assign is pointless exercise as there is no dos device or volume (as far as I understood). The problem is the lame apollo scsi device-driver that barfs when programs try to probe it for (non-existant) devices.
Well behaving .device does indeed flush out of memory with Avail FLUSH, so that might work. Then again it might fail aswell, as many ROM based devices ignore expunge requests.
If it fails to remove with avail flush, then manual removal is the only option. IIRC Scout can do that. If removing with Scout works, it's rather trivial to hack a program that does the removal automagically. Something along the lines:
#include <exec/execbase.h>
#include <proto/exec.h>
extern struct ExecBase *SysBase;
int main(void)
{
struct Node *device;
Forbid();
device = FindName(&SysBase->DeviceList, "whatever.device");
if (device)
{
Remove(device);
}
Permit();
return 0;
}
The above is rather crude bruteforce solution and it doesn't free any resources taken by the driver, but it does prevent programs from seeing the device, and thus prevent them from attempting to use it.