Only if the barbie doll is designed to have it's head, arms, and legs replaced, dressed up in different clothes, optionally not have legs at all...
I was talking about carrier-locked down instances of Android
Of which almost everything is still entirely modular.
Android does have a lot of customization options - especially compared to iOS or Windows - but most of it is relatively superficial or at the application-level
If Android's customizations are "superficial or application level" then the exact same applies to every flavour of Linux. Differences between any two distribution might be things like the window manager, the file manager, default installed applications, library versions, and other mostly application level stuff: underneath it all, anything running the linux kernel and able to load Linux libraries can be said to be "Linux". But of course we're not just talking about "Linux", we're talking about "GNU/Linux", so it needs a specific set of libraries to start, a collection of tools (sometimes from an available list, like different shells or editors), if it's to be graphical it needs a window manager. What have we got in Linux? Gnome, KDE, Enlightenment, XFCE, a few others? Maybe a dozen altogether? Android has
all these, and that's just the list of the major ones. Same goes for the file manager, tool box, ssh and http daemons, the list goes on. The only thing that makes Android "Android" is the kernel and dalvik, plus a few libraries (like the NDK), everything else that goes on top of it, from the input to the launcher, is a distinct module that can be swapped out with any myriad of other modules. It's a phone OS, and there are about 40 different dialers you can choose from! The one thing you can argue it was designed for and even that's modular by design. Hundreds of different on-screen keyboards to choose from, or physical keyboard, it's all the same to any application that requests text input.If you compare the phones from two different companies you'd see they can be wildly different in terms of launcher and pre-installed applications. This is exactly identical to the Linux world, where you have Debian competing with Red Hat and Slackware, each with a different set of principles, and within each there are "splinter" distributions, equivalent to different carriers doing their own customizations on the phone manufacturers existing software.
makes some strong assumptions or requirements about the device it will run on
No it doesn't. There is absolutely nothing in Android itself that makes any assumptions about anything, this is why it is possible to compile Android for so many devices regardless of their hardware. The Pandora doesn't have any of the junk in a regular phone and it's able to run Android. If some applications make assumptions about hardware, like whether there's a GPS or a phone or other sensors then that is entirely on the application.Hey, I've got a webcam app on my desktop that assumes I have a webcam and won't start without it, obviously Linux is at fault here, right?
No, of course it isn't. The application is designed with a specific purpose and I don't fault it at all for requiring the device that it was designed for. Same goes for Android applications.
And then, just because of how modular Android is, it's even possible to get around a lot of these requirements anyway by creating fake devices, because Android was designed for that and doesn't make any assumptions about the hardware.
You cannot use standard libraries like X or glibc
No, you have a completely different set of standard libraries. If the argument is that Linux is somehow more customizable because Android can't use the X libraries, then I'll just turn it right around and say that Android is more customizable because Linux can't use the NDK libraries, or that Windows is more customizable because neither of them can use the W32 libraries. C'mon man, that's a dead end argument and you know it.
but there's also plenty of proprietary stuff
Irrelevant. The discussion is about whether Android can be argued to be more or less customizable than standard GNU/Linux and this can be true whether the customizations are open or closed source.
Also in terms of development options, in Android you're basically restricted to Java
Or perl, ruby, C, C++, brainfuck, python, php, lisp, BASIC, COBOL, bash script... yeah, it's not a short list. Almost every language for an x86 linux desktop has one or more Android equivalents.
Android was designed for modularity, Google wanted it to be able to run on as many different devices as possible, and be easy to use in every case, so they wrote compatibility hooks into it right from the start for all the devices they could think would be useful, and even then they still missed some and had to add them in subsequent releases. Unlike Windows or Linux however, which have standardized libraries for things like sound and video, keyboards and gamepads, Android just has hooks and stubs and everything that goes into those hooks from back end to front can be replaced. You can completely change the launcher and applications will still work (try changing from Gnome to KDE with the same lack of hassle), change the underlying sound system and sound is still produced (and how many applications choke on Pulse vs ALSA vs OSSv4?), and a lot of that is thanks to dalvik. There are arguments to be made about whether this is better or worse: I would definitely say that it is a lot less secure, since anyone can just replace any component and who knows what it's doing, but it is very hard to argue against the amount of customization it provides.
tl;dr;
Android is modular by design, both inside and out, with dozens (and sometimes hundreds) of offerings for what GNU/Linux would consider "standard" components. You can have multiple of the same components installed at any time and choose between them whenever required, or have none installed at all. This is where the lego analogy came in: you have a base board, you can jam as many of any coloured block onto that board as you would like, build whatever kind of mess you want in whatever configuration you want, and as long as everything is built on that base board it's still Android. It doesn't always look pretty, it may not function well but it's still Android, but that's why manufacturers, carriers, and rooters build their own versions, so that there is some uniformity and aesthetic appeal. The car analogy is still better, of course, but if ever there was an OS that could fit a lego block analogy it would be Android.