Yes memcached is used internally by Couchbase server. This is the cache of the "database" but also and more importantly the network protocol used between the clients (applications) and the database/cache.
1. what is the advantage of memcached bucket over memcached server in couchbase as its using same damn thing.
Couchbase server, when using a Memcached bucket provides you a clustered version of Memcached.
2. moxi is getting the data and its forwarding to memcached. Cant we send data directly to memcached server in couchbase. Actually its more overhead than using actual memcached server
Moxi is important since it is the layer that deals with the cluster. keys will be distributed on different nodes and Moxi is responsible of the sharding.
The idea of moxi is to allow you to just switch your server from a vanilla Memcached to Couchbase without changing your code.
If you want to avoid the minor overhead of Moxi, you just have to switch to a Couchbase Client SDK (for example libcouchbase) and connect to the cluster, see http://www.couchbase.com/communities/all-client-libraries
3.memcached used for libmemcached client or its also used for libcoucbase client in couchbase.
I am not sure to understand this question.
However if you want to use libmemcached client you have to connect to a "memcached port" so you will be using moxi; and the cluster management (sharding of the data) is manage by Moxi and not by the "client".
If you are using libcouchbase the client connect to the Couchbase cluster directly and deals with the various nodes and sharding of data.
You can find some information about Memcached and Couchbase here:
http://www.couchbase.com/memcached
Regards